#include <bits/stdc++.h>
using namespace std;
const int MOD = 998244353;
const int N = 1000002;
const double PI = 4 * atan(1);
const double eps = 1e-7;
const long long oo = 1e18;
long long n, m, k, x;
vector<long long> a[N];
long long pres[N];
long long pow(long long x, long long u, long long mod) {
  long long res = 1;
  long long a = x;
  while (u) {
    if (u % 2) {
      res *= a;
      while (res < 0) {
        res += mod;
      }
      res %= mod;
    }
    a = a * a;
    while (a < 0) {
      a += mod;
    }
    a %= mod;
    u /= 2;
  }
  return res;
}
long long inverse_mod(long long a, long long mod) {
  return pow(a, mod - 2, mod);
}
long long add(long long a, long long b) {
  long long res = a + b;
  res %= MOD;
  while (res < 0) res += MOD;
  return res % MOD;
}
long long mult(long long a, long long b, long long mod) {
  long long res = (a % mod) * (b % mod);
  res %= mod;
  while (res < 0) res += mod;
  return res % mod;
}
int main() {
  ios::sync_with_stdio(0);
  cin >> n;
  long long in_n = inverse_mod(n, MOD);
  for (int i = 0; i < n; i++) {
    cin >> k;
    for (int j = 0; j < k; j++) {
      long long x;
      cin >> x;
      pres[x] += mult(in_n, inverse_mod(k, MOD), MOD);
      a[i].push_back(x);
    }
  }
  long long sum = 0;
  long long ans = 0;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < a[i].size(); j++) {
      sum = add(sum, mult(in_n, pres[a[i][j]], MOD));
    }
  }
  cout << sum << endl;
  return 0;
}
