#include using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N,M; cin>>N>>M; vector>A(N); for(int i=0;i>A[i][0]>>A[i][1]; sort(A.begin(),A.end(),[](arraya, arrayb){ return a[0]>b[0]; }); long long ans=0; vectordp(M+1,-1e18); dp[0]=0; for(int i=0;i=0;j--){ if(j+A[i][1]<=M&&dp[j]>=0){ dp[j+A[i][1]]=max(dp[j+A[i][1]],dp[j]+A[i][0]); ans=max(ans,dp[j+A[i][1]]*A[i][0]); } } } cout<