#include using namespace std; int n; int cena[2005], tezina[2005]; int W; int rec(int at, int W_left) { if(at == n) { return 0; } int result = -2e9; // da ne go zememe elementot result = max(result, rec(at + 1, W_left)); if(W_left - tezina[at] >= 0) result = max(result, rec(at + 1, W_left - tezina[at]) + cena[at]); return result; } int main() { cin >> n; for(int i = 0; i < n; i++) { cin >> cena[i] >> tezina[i]; } cin >> W; cout << rec(0, W) << endl; return 0; }