#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<string>
#include<vector>
#include<map>
#include<stack>
#include<queue>

using namespace std;

const int INF=1<<30;

int main(){
	int N,W;
	int dp[10001];
	scanf("%d %d",&N,&W);
	for(int i=0;i<10001;i++) dp[i]=INF;
	dp[0]=0;
	
	for(int i=0;i<N;i++){
		int v,w;
		scanf("%d %d",&v,&w);
		for(int j=10000;j>=v;j--){
			dp[j]=min(dp[j],dp[j-v]+w);
		}
	}
	int tmp;
	for(int i=0;i<10001;i++){
		if(dp[i]<=W) tmp=max(tmp,i);
	}
	printf("%d\n",tmp);
}
