def main(): N, M = map(int, input().split()) vw = [list(map(int, input().split())) for i in range(N)] vw.sort(key=lambda x: x[0], reverse=True) ans = 0 DP = [0]*(M+1) for v, w in vw: for i in range(M-w, -1, -1): DP[i+w] = max(DP[i+w], DP[i]+v) ans = max(ans, v * DP[M]) print(ans) if __name__ == '__main__': main()