#include using namespace std; #define ll long long #define FOR(i, j, k, in) for (int i=j; i=k; i-=in) #define REP(i, j) FOR(i, 0, j, 1) #define RREP(i, j) FOR(i, j, 0, 1) #define ALL(a) a.begin(), a.end() #define RALL(a) a.end(), a.begin() #define F first #define S second #define PB push_back #define MP make_pair #define pii pair #define MOD 1000000007 void solve() { ll n, m, a, b; cin >> n; vector> dp; map tr; tr.insert({0, 0}); REP(i, n) { vector changes; cin >> m; REP(j, m) { cin >> a >> b; if (tr.count(a) == 1) { changes.PB({0, tr[a] + b}); } changes.PB({a, tr[0] - b}); } for (pii c: changes) { if (tr.count(c.F) == 1) { tr[c.F] = max(tr[c.F], c.S); } else { tr[c.F] = c.S; } } } cout << tr[0] << endl; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); ll n=1; // cin >> n; REP(i, n) { solve(); } return 0; }