n,m=map(int,input().split()) item=[list(map(int,input().split())) for _ in range(n)] item.sort(reverse=True) dp=[[0]*(1+m) for _ in range(n+1)] ans=0 for i in range(n): v,w=item[i] for j in range(m+1): dp[i+1][j]=max(dp[i+1][j],dp[i][j]) if j+w<=m: if dp[i+1][j+w]