#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 5005, p = 998244353;
int n, a[N], c[N], m, b[N], e[N], fac[N], inv[N], f[N];
int qpow(int a, int b) { int c = 1; while (b) { if (b & 1) c = (ll)c * a % p; a = (ll)a * a % p, b >>= 1; } return c; }
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
cin >> n; for (int i = 1; i <= n; i++) cin >> a[i], c[a[i]]++, b[i] = a[i] + 1, m = (m + a[i]) % p;
e[0] = 1; for (int i = 1; i <= n; i++) for (int j = i; j; j--) e[j] = (e[j] + (ll)b[i] * e[j - 1]) % p;
fac[0] = 1; for (int i = 1; i <= n; i++) fac[i] = (ll)fac[i - 1] * i % p;
inv[1] = 1; for (int i = 2; i <= n; i++) inv[i] = ll(p - p / i) * inv[p % i] % p;
f[0] = 1; for (int i = 1; i < n; i++) f[i] = (ll)f[i - 1] * (m + i) % p * inv[i] % p;
reverse(f, f + n); for (int i = n; i; i--) f[i] = (ll)f[i - 1] * fac[i] % p * fac[n - i] % p * e[i] % p;
int iv = 1; for (int i = 0; i < N; i++) iv = (ll)iv * fac[c[i]] % p; iv = qpow(iv, p - 2);
for (int i = 1; i <= n; i++) cout << ll(f[i] - f[i + 1] + p) * iv % p << '\n';
}