#define int long long constint N = 4010, P = 998244353; int dp[N][N], ans[N]; int fact[N], infact[N];
intqpow(int a, int k){ int res = 1; while (k) { if (k & 1) res = res * a % P; a = a * a % P; k >>= 1; } return res; }
intC(int a, int b){ return fact[a] * infact[b] % P * infact[a-b] % P; }
signedmain(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m, k; cin >> n >> m >> k; dp[0][0] = 1; for (int i = 1; i <= n+m; i++) { for (int j = 1; j <= k-1; j++) { dp[i][j] = (dp[i-1][j] * j + dp[i-1][j-1] * (k-j)) % P; } }
fact[0] = 1; for (int i = 1; i < N; i++) fact[i] = fact[i-1] * i % P; infact[N-1] = qpow(fact[N-1], P-2); for (int i = N-2; i >= 0; i--) infact[i] = infact[i+1] * (i+1) % P;
for (int x = 1; x <= n; x++) { for (int y = 1; y <= m; y++) { ans[n+m-max(x,y)] = (ans[n+m-max(x,y)] + C(n, x) * C(m, y) % P * dp[n+m-x-y][k-1]) % P; } }
for (int i = min(n, m); i <= n+m-1; i++) cout << ans[i] << " \n"[i == n+m-1];