#include <iostream>
#include <algorithm>
#define INF 200000009
#define MAX_N 55
#define MAX_V 100005
using namespace std;
int DP[MAX_N][MAX_V];
int cst[MAX_N], len[MAX_N], games[MAX_N][15][2];
int N, V;
int main() {
cin >> N >> V;
for (int i = 0; i < N; i ++) {
cin >> cst[i] >> len[i];
for (int j = 0; j < len[i]; j ++)
cin >> games[i][j][0] >> games[i][j][1];
}
for (int i = 0; i < N; i ++)
for (int j = 1; j <= V; j ++)
DP[i][j] = -INF;
int ans = 0;
for (int i = 0; i < N; i ++) {
if (DP[i][j]) {
for (int k = 0; k < len[i]; k ++) {
for (int j = V; j >= 0; j --) {
if (j + games[i][k][0] <= V) {
DP[i][j + games[i][k][0]] = max(DP[i][j + games[i][k][0]], DP[i][j] + games[i][k][1]);
ans = max(ans, DP[i + 1][j + games[i][k][0]]);
}
}
}
DP[i + 1][j] = max(DP[i + 1][j], DP[i][j]);
ans = max(ans, DP[i + 1][j]);
}
for (int j = 0; j <= V; j ++) {
if (j + cst[i] <= V) {
DP[i + 1][j + cst[i]] = max(DP[i + 1][j + cst[i]], DP[i][j]);
ans = max(ans, DP[i + 1][j + cst[i]]);
}
}
}
cout << ans << endl;
return (0);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKI2RlZmluZSBJTkYgMjAwMDAwMDA5CiNkZWZpbmUgTUFYX04gNTUKI2RlZmluZSBNQVhfViAxMDAwMDUKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgRFBbTUFYX05dW01BWF9WXTsKCmludCBjc3RbTUFYX05dLCBsZW5bTUFYX05dLCBnYW1lc1tNQVhfTl1bMTVdWzJdOwppbnQgTiwgVjsKCmludCBtYWluKCkgewogICAgY2luID4+IE4gPj4gVjsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkgKyspIHsKICAgICAgICBjaW4gPj4gY3N0W2ldID4+IGxlbltpXTsKICAgICAgICAKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGxlbltpXTsgaiArKykKICAgICAgICAgICAgY2luID4+IGdhbWVzW2ldW2pdWzBdID4+IGdhbWVzW2ldW2pdWzFdOwogICAgfQogICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IE47IGkgKyspIAogICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IFY7IGogKyspCiAgICAgICAgICAgIERQW2ldW2pdID0gLUlORjsKICAgIAogICAgaW50IGFucyA9IDA7CiAgICAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgaSArKykgewogICAgICAgIGlmIChEUFtpXVtqXSkgewogICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IGxlbltpXTsgayArKykgewogICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IFY7IGogPj0gMDsgaiAtLSkgewogICAgICAgICAgICAgICAgICAgIGlmIChqICsgZ2FtZXNbaV1ba11bMF0gPD0gVikgewogICAgICAgICAgICAgICAgICAgICAgICBEUFtpXVtqICsgZ2FtZXNbaV1ba11bMF1dID0gbWF4KERQW2ldW2ogKyBnYW1lc1tpXVtrXVswXV0sIERQW2ldW2pdICsgZ2FtZXNbaV1ba11bMV0pOwogICAgICAgICAgICAgICAgICAgICAgICBhbnMgPSBtYXgoYW5zLCBEUFtpICsgMV1baiArIGdhbWVzW2ldW2tdWzBdXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBEUFtpICsgMV1bal0gPSBtYXgoRFBbaSArIDFdW2pdLCBEUFtpXVtqXSk7CiAgICAgICAgICAgIGFucyA9IG1heChhbnMsIERQW2kgKyAxXVtqXSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDw9IFY7IGogKyspIHsKICAgICAgICAgICAgaWYgKGogKyBjc3RbaV0gPD0gVikgewogICAgICAgICAgICAgICAgRFBbaSArIDFdW2ogKyBjc3RbaV1dID0gbWF4KERQW2kgKyAxXVtqICsgY3N0W2ldXSwgRFBbaV1bal0pOwogICAgICAgICAgICAgICAgYW5zID0gbWF4KGFucywgRFBbaSArIDFdW2ogKyBjc3RbaV1dKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgY291dCA8PCBhbnMgPDwgZW5kbDsKICAgIHJldHVybiAoMCk7Cn0=