N, I = map(int, input().split()) s = [0]*N a = [0]*N for i in range(N): si, ai = map(int, input().split()) s[i] = si a[i] = ai dp = [[0]*(I+1) for i in range(N+1)] for i in range(N): for j in range(I): dp[i+1][j] = max(dp[i+1][j], dp[i][j]) if j+s[i] <= I: dp[i+1][j+s[i]] = max(dp[i][j]+a[i], dp[i][j]) res = 0 for i in range(N+1): for j in range(I+1): res = max(res,dp[i][j]) print(res)