import sys
input=lambda:sys.stdin.readline().rstrip()
N,M=map(int,input().split())
jewel=[tuple(map(int,input().split())) for i in range(N)]
jewel=sorted(jewel,key=lambda x:-x[0])
dp=[[-float('inf') for i in range(M+1)] for j in range(N+1)]
dp[0][0]=0
ans=0
for i in range(1,N+1):
	V,W=jewel[i-1]
	for j in range(M+1):
		if j-W>=0 and dp[i-1][j-W]+V>dp[i-1][j]:
			dp[i][j]=dp[i-1][j-W]+V
		else:
			dp[i][j]=dp[i-1][j]
	ans=max(ans,V*max(dp[i]))
print(ans)