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()