
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
#define MAX_V 110
#define INF 0x3f3f3f3f
#define MAX_N 110
int w[MAX_N];
int v[MAX_N];
int W;
int n;
int dp[MAX_N][MAX_N*MAX_V+1];
void solve()
{
fill(dp[0],dp[0]+MAX_N*MAX_V+1,INF);
dp[0][0]=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<=MAX_N*MAX_V;j++)
{
if(j<v[i])
{
dp[i+1][j]=dp[i][j];
}
else{
dp[i+1][j]=min(dp[i][j],dp[i][j-v[i]]+w[i]);
}
}
}
int res=0;
for(int i=0;i<=MAX_N*MAX_V;i++)
{
if(dp[n][i]<=W)
{
res=i;
}
}
printf("%d",res);
}
int main()
{
scanf("%d%d",&n,&W);
for(int i=0;i<n;i++)
{
scanf("%d",&w[i]);
scanf("%d",&v[i]);
}
solve();
system("pause");
return 0;
}