#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; typedef pair pii; typedef tuple t3; int dp[100010]; int main() { int n; cin >> n; vector vs(n); for(int i = 0;i < n;i++) { int v,w; cin >> v >>w; vs[i] = make_pair(v,w); } int maxv; cin >> maxv; for(int i = 0;i < n;i++) { auto v = vs[i].first; auto w = vs[i].second; for(int j = 100010-1;j - w>= 0;j--) { auto k = j - w; dp[j] = max(dp[j], dp[k] + v); } } ll mn=100001,mx=0; for(int i = 0;i <= 100001;i++) { if(dp[i]==maxv){ mn=min(mn,(ll)i); mx=max(mx,(ll)i); } } if(mx==100001) { cout<