#include<bits/stdc++.h>
using namespace std;
const int N=5010;
long long dp[N][N];
int m[N];
int main()
{
int n,p;
cin>>n>>p;
for(int i=1;i<=n;i++)
cin>>m[i];
dp[0][0]=1;
for(int i=1;i<=n;i++)
{
dp[i][0]=1;
for(int j=1;j<=n;j++)
dp[i][j]=(dp[i-1][j]%p+dp[i-1][j-1]*m[i]%p)%p;
}
for(int i=0;i<=n;i++)
cout<<dp[n][i]<<' ';
}
#include<bits/stdc++.h>
using namespace std;
const int N=5010;
long long dp[N];
int m[N];
int main()
{
int n,p;
cin>>n>>p;
dp[0]=1;
for(int i=1;i<=n;i++)
{
int t;
cin>>t;
for(int j=n;j>=1;j--)
dp[j]=(dp[j]+dp[j-1]*t%p)%p;
}
for(int i=0;i<=n;i++)
cout<<dp[i]<<' ';
return 0;
}