#include<bits/stdc++.h>
using namespace std;
int n,w,ans;
struct node{
int a,b;
bool flag;
};
node player[10010];
bool cmp1(node a,node b){
return a.b>b.b&&a.a<a.b;
}
bool cmp2(node a,node b){
return a.a>b.a;
}
int main(){
cin>>n>>w;
for(int i=1;i<=n;i++){
cin>>player[i].a>>player[i].b;
}
sort(player+1,player+n+1,cmp1);
for(int i=1;i<=n;i++){
if(!player[i].flag&&player[i].a<player[i].b&&n!=1){
w-=player[i].b;
player[i].flag=true;
ans++;
}
}
sort(player+1,player+n+1,cmp2);
while(w!=0){
for(int i=1;i<=n;i++){
if(!player[i].flag){
w-=player[i].a;
player[i].flag=true;
}
}
}
if(n==1){
ans=w/player[n].a;
if(w%player[n].a<player[n].b){
ans++;
}
else{
ans+=w%player[n].a/player[n].b;
}
}
cout<<ans;
return 0;
}