N, A, B = map(int, input().split()) XY = [tuple(map(int, input().split())) for _ in range(N)] init = 10**10 dp = [[[init] * (N+1) for _ in range(A+1)] for _ in range(N)] dp[0][0][0] = 0 if XY[0][0] <= A and XY[0][1] <= B: dp[0][XY[0][0]][1] = XY[0][1] for i in range(N-1): for j in range(A+1): for k in range(N): if dp[i][j][k] < dp[i+1][j][k]: dp[i+1][j][k] = dp[i][j][k] if j+XY[i+1][0] <= A and dp[i][j][k] + XY[i+1][1] <= B: dp[i+1][j+XY[i+1][0]][k+1] = min(dp[i][j][k] + XY[i+1][1], dp[i+1][j+XY[i+1][0]][k+1]) ans = 0 for j in range(A+1): for k in range(N+1): if dp[-1][j][k] < init and k > ans: ans = k print(ans)