inlineintread(){ registerchar c; for (c = getchar(); (c < '0' || c>'9') && c != '-'; c = getchar()); registerbool f = c == '-'; registerint s = f ? 0 : c - '0'; for (c = getchar(); c >= '0' && c <= '9'; c = getchar())s = (s << 3) + (s << 1) + c - '0'; return f ? -s : s; }
inteva_maxV(int W1, int W2){ int ans = -INF; for (int i = 0; i <= W1; i++) { for (int j = 0; j <= W2; j++) ans = max(ans, d[i][j]); } return ans; }
intmain(){ n = read(); W1 = read(); W2 = read(); int v, w1, w2; for (int i = 1; i <= n; i++) { v = 1; w1 = read(); w2 = read(); for (int j = W1; j >= w1; j--) { for (int k = W2; k >= w2; k--) d[j][k] = max(d[j][k], d[j - w1][k - w2] + v); } } cout << eva_maxV(W1, W2); }