#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
struct Node{
int v,b;
}node[25];
bool cmp(Node n1,Node n2){
return n1.v<n2.v;
}
int main(){
int n,c,i,j,ans;
scanf("%d%d",&n,&c);
for(i=1;i<=n;i++){
scanf("%d%d",&node[i].v,&node[i].b);
}
sort(node+1,node+1+n,cmp);
ans = 0;
for(i=n;i>=1;i--){
if(node[i].b>0&&node[i].v>=c){
ans++;
node[i].b--;
}
}
while(true){
int tmp = 0;
for(i=n;i>=1;i--){
while(node[i].b>0&&tmp+node[i].v<=c){
tmp += node[i].v;
node[i].b--;
}
}
if(tmp==c){
ans++;
tmp = 0;
}
else{
for(j=1;j<=n;j++){
while(node[j].b>0&&tmp+node[j].v<c){
tmp += node[j].v;
node[j].b--;
}
if(node[j].b>0&&tmp+node[j].v>=c){
tmp += node[j].v;
node[j].b--;
ans++;
tmp = 0;
break;
}
}
}
if(tmp!=0){
break;
}
bool flag = true;
for(i=1;i<=n;i++){
if(node[i].b>0)
flag = false;
}
if(flag)break;
}
cout<<ans<<endl;
return 0;
}