n, m = map(int, input().split()) ramen = [list(map(int, input().split())) for _ in [0]*n] dp = [-1] * (m + 1) dp[0] = 0 for i in range(n): ndp = dp[:] for j in range(m): k = j + ramen[i][0] if(dp[j] == -1 or k > m): continue ndp[k] = max(ndp[k], dp[j] + ramen[i][1]) dp = ndp[:] print(max(dp))