#include<bits/stdc++.h>
using namespace std;
const int N=3000;
int p,a[N],f[N],invf[N],ans[N];
int C(int n,int m)
{
    if(m>n) return 0;
    return f[n]*invf[n-m]%p*invf[m]%p;
}
int main()
{
    scanf("%d",&p);
    f[0]=invf[0]=invf[1]=1;
    for(int i=1;i<p;i++) f[i]=f[i-1]*i%p;
    for(int i=2;i<p;i++) invf[i]=(p-p/i)*invf[p%i]%p;
    for(int i=2;i<p;i++) invf[i]=invf[i]*invf[i-1]%p;
    for(int i=0;i<=p-1;i++) scanf("%d",&a[i]);
    for(int i=0;i<=p-1;i++)
    {
        if(a[i])
        {
            int t=1;
            for(int j=p-1;j>=0;j--)
                ans[j]+=C(p-1,j)*t%p,t=t*(p-i)%p;
        }
        else ans[0]++;
    }
    for(int i=0;i<=p-1;i++)
        printf(i==p-1?"%d\n":"%d ",(p-ans[i]%p)%p);
}
