#include<bits/stdc++.h>
using namespace std;
const int N=1e2+5;
int n,maxv; 
int dp[N];
int w[N][N],v[N][N],num[N];
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>n>>maxv;
	for(int i=1;i<=n;i++){
		cin>>num[i];
		for(int j=1;j<=num[i];j++){
			cin>>v[i][j]>>w[i][j];
			
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=maxv;j>=0;j--){
			for(int k=1;k<=num[i];k++){
				if(j>=v[i][k]) dp[j]=max(dp[j],dp[j-v[i][k]]+w[i][k]);
			}
		}
	}
	cout<<dp[maxv];
	return 0;
}
/**************************************************************
	Problem: 1906
	User: liangshinan
	Language: C++
	Result: Accepted
	Time:33 ms
	Memory:2316 kb
****************************************************************/