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