#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
****************************************************************/