#include <bits/stdc++.h>
using namespace std;
vector<int> a[1000100];
int kids[1000100];
long long mod_pow(long long b, int x) {
  if (!x) return 1;
  if (x & 1) return (b * mod_pow(b, x - 1)) % 998244353;
  long long tmp = mod_pow(b, x >> 1);
  return (tmp * tmp) % 998244353;
}
int main() {
  int n;
  while (scanf("%d", &n) > 0) {
    memset(kids, 0, sizeof kids);
    for (int i = 1; i <= n; i++) {
      int k;
      scanf("%d", &k);
      a[i].resize(k);
      for (int j = 0; j < k; j++) {
        scanf("%d", &a[i][j]);
        kids[a[i][j]]++;
      }
    }
    long long ans = 0;
    for (int i = 1; i <= n; i++) {
      int k = a[i].size();
      long long inv_den =
          mod_pow(((long long)n * n * k) % 998244353, 998244353 - 2);
      for (int j = 0; j < k; j++) {
        ans = (ans + ((kids[a[i][j]] * inv_den) % 998244353)) % 998244353;
      }
    }
    printf("%lld\n", ans);
    for (int i = 1; i <= n; i++) {
      a[i].clear();
    }
  }
}
