ll n,m,p; struct S{ modint a[500]; S(){} S(int){} S&operator%(int){return*this;} S&operator%=(int){return*this;} }; S operator*(S&a,S&b){ S r; modint h[500]; rep(i,n){ r.a[i]=a.a[i]+b.a[i]; rep(j,i){ h[i]+=a.a[i+~j]*b.a[j]; r.a[i]+=h[i+~j]*r.a[j]; } } return r; } { rd(n,m,p); modint().setmod(p); S s; rep(i,n){ ll@x; s.a[i]=x; } s=PowMod(s,m,0); wt(s.a(n)); }