/*对于这种情况很多,很难分析的题;
一般用搜索,用回朔搜索,搜尽所有可能,
然后取出最优解;*/
#include"stdio.h"
#define inf 9999999
int a[20],b[20];
int n,m,min,visit[20];
void bfs(int v,int w)
{
int i;
if(v<=0)
{
if(min>w)
min=w;
}
for(i=1;i<=n;i++)
{
if(visit[i]==0)
{
visit[i]=1;
if(v<=b[i])
{
bfs(v-2*a[i],w+1);
visit[i]=0;
}
else
{
bfs(v-a[i],w+1);
visit[i]=0;
}
}
}
}
int main()
{
int i;
while(scanf("%d%d",&n,&m)!=EOF)
{
min=inf;
for(i=1;i<=n;i++)
scanf("%d%d",&a[i],&b[i]);
bfs(m,0);
if(min==inf)
printf("-1\n");
else
printf("%d\n",min);
}
return 0;
}