ll n,m,p; struct S{ modint a[500]; S(){} S(int){} S&operator*=(S&b){ S&a=*this; 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]; } } *this=r; return *this; } }; { rd(n,m,p); modint().setmod(p); S s; rep(i,n){ ll@x; s.a[i]=x; } s**=m; wt(s.a(n)); }