#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define ALL(g) (g).begin(),(g).end() #define REP(i, x, n) for(int i = x; i < n; i++) #define rep(i,n) REP(i,0,n) #define F(i,j,k) fill(i[0],i[0]+j*j,k) #define P(p) cout<<(p)< vi; typedef vector vl; typedef vector vd; typedef pair pii; typedef pair pll; typedef long long ll; int v[101],w[101],dp[100001];//重さのMAX価値を保存 int main(){ int n; cin>>n; for(int i=0;i>v[i]>>w[i]; for(int j=100000;j>=0;j--){ dp[j+w[i]]=max(dp[j+w[i]],dp[j]+v[i]); } } int max_v,mn=100001,mx=0; cin>>max_v; for(int i=0;i<=100001;i++){ if(dp[i]==max_v){ mn=min(mn,i); mx=max(mx,i); } } if(mx==100001){ cout<