#include<bits/stdc++.h>
#define fo(i,a,b)for(int i=a;i<b;i++)
long long dp[105][600006],t;
main(){int n,k,M,b;std::cin>>n>>k>>M;dp[0][0]=1,b=n*(n+1)/2*k;fo(i,1,n+1)fo(s,0,b+1) 
dp[i][s]=(dp[i-1][s]+(s<i?0:dp[i][s-i])+M-(s<i*(k+1)?0:dp[i-1][s-i*(k+1)]))%M;
fo(i,1,n+1){t=0;fo(s,0,b+1)t=(t+dp[i-1][s]*dp[n-i][s])%M;
std::cout<<(t*(k+1)+M-1)%M<<'\n';}}

#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define sz(a) ((int)a.size())
#define re return
#define all(a) a.begin(),a.end()
#define int long long
#define Type int
#define rept(i,a,b) for(int i=(a);i<(b);i++)
#define rep(i,a) rept(i,0,a)
using namespace std;
void fail(string s){ cout<<s;exit(0); }
void fail(int s){ cout<<s;exit(0); }
const int dx[4]={-1,1,0,0};
const int dy[4]={0,0,-1,1};
void init(){
}
void run(){
	int a,b,c;
	cin>>a>>b>>c;
	int d=b*b+c*c;
	if (d<a*a)
		fail(2);
	rep(ans,1000000000000000){
		int t=(ans*a)*(ans*a);
		if (t>=d){
			fail(ans); 
		}
	}
}
signed main()
{
	init(); 
	int tc=1;
//	cin>>tc;
	while (tc--){
		run();
	}
	re 0;
}
