#include<bits/stdc++.h>
using namespace std;
int n,w;
int ww[301],t[301];
long long f[10001];
bool check(int mid)
{
memset(f,0x3f,sizeof(f));
f[0]=0;
long long ans=f[w];
for(int i=1;i<=n;i++)
for(int j=w;j>=0;j--)
if(f[j]!=ans)
{
int k=j+ww[i];
k=min(k,w);
f[k]=max(f[k],f[j]+t[i]-(long long)ww[i]*mid);
}
return f[w]>=0;
}
int main()
{
cin>>n>>w;
for(int i=1;i<=n;i++)
{
cin>>ww[i]>>t[i];
t[i]*=1000;
}
int l=0,r=1000000;
while(l<=r)
{
int mid=(l+r)>>1;
if(check(mid))
l=mid+1;
else
r=mid-1;
}
cout<<l-1;
return 0;
}