#include using namespace std; int main(){ int N,mod,C; cin>>N>>mod>>C; vector A(N); int S=0; for(int i=0;i>A[i]; S+=A[i]; } if(C<=45){ int x; vector DP(46*50001,0); DP[0]=1; for(int i=0;i=0;k--){ for(int j=50000;j>=0;j--){ if((j+A[i]<=50000)&&(k+1<=45)){ x=(j+A[i])+(k+1)*50001; DP[x]+=DP[j+k*50001]; if(DP[x]>=mod){ DP[x]-=mod; } } } } } for(int i=1;i<=50000;i++){ if(i>S){ break; } cout<<" "; if(i<=S){ cout<=0;k--){ for(int j=50000;j>=0;j--){ if((j+A[i]<=50000)){ x=(j+A[i])+k*50001; DP[x]+=DP[j+k*50001]; if(DP[x]>=mod){ DP[x]-=mod; } }if((k+1<=45)){ x=j+(k+1)*50001; DP[x]+=DP[j+k*50001]; if(DP[x]>=mod){ DP[x]-=mod; } } DP[j+k*50001]=0; } } } for(int i=50001;i<=S;i++){ cout<<" "; cout< DP(46*50001,0); DP[0]=1; for(int i=0;i=0;k--){ for(int j=50000;j>=0;j--){ if((j+A[i]<=50000)){ x=(j+A[i])+k*50001; DP[x]+=DP[j+k*50001]; if(DP[x]>=mod){ DP[x]-=mod; } }if((k+1<=45)){ x=j+(k+1)*50001; DP[x]+=DP[j+k*50001]; if(DP[x]>=mod){ DP[x]-=mod; } } DP[j+k*50001]=0; } } } for(int i=S-1;i>=50000;i--){ cout<<" "; cout<=0;k--){ for(int j=50000;j>=0;j--){ if((j+A[i]<=50000)&&(k+1<=45)){ x=(j+A[i])+(k+1)*50001; DP[x]+=DP[j+k*50001]; if(DP[x]>=mod){ DP[x]-=mod; } } } } } for(int i=min(50000,S)-1;i>=0;i--){ cout<<" "; cout<