#include<bits/stdc++.h> using namespace std; int N,V,s[105],v[105][105],w[105][105],dp[105][105]; int main(){ cin>>N>>V; for(int i=1;i<=N;i++){ cin>>s[i]; for(int j=1;j<=s[i];j++) cin>>v[i][j]>>w[i][j]; } for(int i=1;i<=N;i++){ for(int j=0;j<=V;j++){ dp[i][j]=dp[i-1][j]; for(int k=1;k<=s[i];k++){ if(v[i][k]<=j) dp[i][j]=max(dp[i][j],dp[i-1][j-v[i][k]]+w[i][k]); } } } cout<<dp[N][V]; return 0; } /************************************************************** Problem: 1906 User: yanye Language: C++ Result: Accepted Time:38 ms Memory:2204 kb ****************************************************************/