n, k = map(int, input().split()) S, A = [], [] dp = [[0 for _ in range(k+1)] for _ in range(n+1)] for i in range(n): s, a = map(int, input().split()) S.append(s) A.append(a) for i in range(n+1): for j in range(k+1): if i == 0 or j == 0: dp[i][j] = 0 elif S[i-1] <= j: dp[i][j] = max(A[i-1] + dp[i-1][j-S[i-1]], dp[i-1][j]) else: dp[i][j] = dp[i-1][j] print(dp[n][k])