#include <cstring>
#include <iostream>
using namespace std;
using ll = long long;

const int MAXN = 102;
const int MAXC = 122505;

ll k, mod, table[MAXN][MAXC], ret[MAXN];
int n, now;

void calc() {
    memset(table, 0, sizeof(table));
    table[0][0] = 1;

    for (int i = 1; i <= n; ++i) {
        int c = (k * (i + 1) * i) >> 1;
        c = min(c, MAXC - 1);
        for (int j = 0; j <= c; ++j) {
            for (int v = 0; v <= k; ++v) {
                int tmp = j + v * i;
                if (tmp > c) break;
                table[i][tmp] += table[i-1][j];
                if (table[i][tmp] >= mod) table[i][tmp] -= mod;
            }
        }
    }
}

int main(){
    ios::sync_with_stdio(0), cin.tie(0);
    while (cin >> n >> k >> mod) {
        calc();
        for (now = 1; now * 2 <= n + 1; now++) {
            ll ans = 0;
            int l = now - 1, r = n - now;

            ans += k * table[l][0] * table[r][0];
            ans %= mod;

            for (int j = 1; j < MAXC; ++j) {
                ans += (k + 1LL) * ((table[l][j] * table[r][j]) % mod);
                ans %= mod;
            }

            ret[now] = ans;
            ret[n - now + 1] = ans;
        }

        for (now = 1; now <= n; ++now) cout << ret[now] << '\n';
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
long long MOD;
int main(){
  int N, K;
  cin >> N >> K >> MOD;
  vector<vector<long long>> f(N);
  f[0].push_back(1);
  for (int i = 1; i < N; i++){
    int sz = f[i - 1].size();
    f[i] = vector<long long>(sz + i * K, 0);
    for (int j = 0; j < sz; j++){
      f[i][j] = f[i - 1][j];
    }
    for (int j = i; j < sz + i * K; j++){
      f[i][j] += f[i][j - i];
      f[i][j] %= MOD;
    }
    for (int j = sz + i * K - 1; j >= i * (K + 1); j--){
      f[i][j] += MOD - f[i][j - i * (K + 1)];
      f[i][j] %= MOD;
    }
  }
  for (int i = 0; i < N; i++){
    long long ans = 0;
    int d = min(f[i].size(), f[N - 1 - i].size());
    for (int j = 0; j < d; j++){
      ans += f[i][j] * f[N - 1 - i][j] % MOD;
      ans %= MOD;
    }
    ans *= (K + 1);
    ans %= MOD;
    ans += MOD - 1;
    ans %= MOD;
    cout << ans << endl;
  }
}