#include <bits/stdc++.h>

using namespace std;

const int N = 101;

int dp[N][N * N * N], cnt[N];
int n, k, mod;

void upd(int & var, int val) {
  var += val;
  if (var >= mod)
    var -= mod;
}

int main() {
  scanf("%d %d %d", &n, &k, &mod);
  dp[0][0] = 1;
  int sum = 0;
  for (int x = 1; x <= n; ++x) {
    memset(cnt, 0, sizeof cnt);
    sum += k * x;
    int full = k * x;
    for (int j = 0, z = 0; j <= sum; ++j) {
      int now = dp[x-1][j];
      upd(cnt[z], now);
      dp[x][j] = cnt[z];
      if (j >= full) {
        upd(cnt[z], mod - dp[x-1][j-full]);
      }
      ++z;
      if (z >= x)
        z -= x;
    }
  }
  for (int i = 1; i <= n; ++i) {
    int lef = i - 1, rig = n - i;
    long long ans = 0;
    for (int j = 0; j <= sum; ++j) {
      ans = (ans + 1LL * dp[lef][j] * dp[rig][j]) % mod;
    }
    ans = (ans * (k+1) - 1) % mod;
    if (ans < 0)
      ans += mod;
    printf("%lld\n", ans);
  }
  return 0;
}


// Author: Muhesh Kumar

#include<bits/stdc++.h>
using namespace std;

using ll  = long long;
using db = long double;
using str = string;

using pi = pair<int, int>;
using pl = pair<ll, ll>;
using pd = pair<db, db>;

using vi = vector<int>;
using vb = vector<bool>; 
using vl = vector<ll>;
using vd = vector<db>;
using vs = vector<str>;

using vpi = vector<pi>;
using vpl = vector<pl>;
using vpd = vector<pd>;

using vvi = vector<vi>;
using vvl = vector<vl>;

using si = set<int>;
using sl = set<ll>;
using ss = set<str>;

ll mod = 1000000007;
ll inf = 1e18 + 1;

#define fr first
#define sc second

#define sz(x) (x).size()
#define bg(x) begin(x)
#define all(x) bg(x), end(x)

#define ft front()
#define bk back()
#define mp make_pair
#define mt make_tuple
#define pb push_back
#define eb emplace_back
#define nl '\n'

#define rev(v) reverse(all(v))
#define sor(v) sort(all(v))
#define lb lower_bound
#define ub upper_bound

#define amax(a, b) a = max(a, b)
#define amin(a, b) a = min(a, b)
#define mxele(v) *max_element(all(v))
#define mnele(v) *min_element(all(v))

#define rep(i, a, b) for(int i = a; i < b; i++)
#define repeq(i, a, b) for (int i = a; i <= b; i++)
#define reprev(i, b, a) for (int i = b - 1; i >= a; i--)
#define repeach(a, b) for (auto& a: b)

int main() {
 
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    int n, a, b; cin >> n >> a >> b;
    cout << n - a + b;
    
    return 0;
}