#include using namespace std; using vi = vector; using ull = unsigned long long; using ll = long long; void solve(){ ll N; cin >> N; vector> wire(N+1); for(ll i = 0; i < N; i++){ ll bcount, dest; cin >> bcount; for(ll j = 0; j < bcount; j++){ cin >> dest; wire[i][dest]++; } } vector> stages(N+1); for(ll i = N; i >= 0; i--){ stages[i] = stages[i+1]; for(auto ele : wire[i]){ stages[i][ele.first] += ele.second; } } ll res = 0; for(ll i = 0; i < N; i++){ for(auto ele : wire[i]){ ll curr = 0; for(auto it = prev(stages[i+1].lower_bound(ele.first)); it != stages[i+1].begin(); it--){ curr += it->second; } curr += stages[i+1].begin()->second; res += curr * ele.first; } } cout << res; } int main() { cin.tie(0)->sync_with_stdio(0); cin.exceptions(cin.failbit); int t = 1; //cin >> t; while (t--){ solve(); } return 0; }