#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
int MOD = 998244353;
long long int powpow(int a, int b) {
  if (b == 0) return 1;
  long long int t = powpow(a, b / 2);
  t *= t;
  t %= MOD;
  if (b % 2) t *= a;
  t %= MOD;
  return t % MOD;
}
long long int inv(int a) { return powpow(a, MOD - 2); }
vector<int> v[1000005];
int cnt[1000005];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    int k;
    cin >> k;
    for (int j = 0; j < k; j++) {
      int x;
      cin >> x;
      v[i].push_back(x);
      cnt[x]++;
    }
  }
  long long int a = 0;
  long long int b = 0;
  for (int i = 0; i < n; i++) {
    int k = v[i].size();
    for (auto x : v[i]) {
      if (a == 0 && b == 0) {
        a = cnt[x];
        b = n * 1ll * n * k;
      } else {
        a = (((((n * 1ll) % MOD) * n) % MOD * k) % MOD * a) % MOD +
            (b * cnt[x]) % MOD;
        b = (((((b * 1ll % MOD) * n) % MOD) * n) % MOD * k) % MOD;
        a %= MOD;
        b %= MOD;
      }
    }
  }
  cout << a * inv(b) % MOD << endl;
}
