#include<bits/stdc++.h> using namespace std; long long n,vp,si,v[110],w[110],dp[110][11000]; int main(){ cin>>n>>vp; for(int i=1;i<=n;i++){ cin>>si; for(int j=1;j<=si;j++){ cin>>w[j]>>v[j]; for(int z=1;z<=w[j]-1;z++){ dp[i][z]=max(dp[i][z],dp[i-1][z]); } for(int z=w[j];z<=vp;z++){ dp[i][z]=max(dp[i][z],dp[i-1][z-w[j]]+v[j]); dp[i][z]=max(dp[i][z],dp[i-1][z]); } } } cout<<dp[n][vp]; return 0; } /************************************************************** Problem: 1906 User: caijiajie Language: C++ Result: Accepted Time:39 ms Memory:11528 kb ****************************************************************/