#include <bits/stdc++.h>
typedef long long ll;
#define FOR(i,a,b) for(ll i=(a);i<(b);i++)
#define REP(i,a) FOR(i,0,a)
using namespace std;
const ll MAX_P=2999;
typedef vector<ll> vec;
ll p,inv[MAX_P];
ll mpw(ll n,ll m){
	ll r=1;
	while(m){
		if(m&1){
			r*=n;
			r%=p;
		}
		n*=n;
		n%=p;
		m>>=1;
	}
	return r;
}
ll minv(ll n){
	return mpw(n,p-2);
}
vec slv(ll n,vec &a){
	vec ret(n+1,0);
	if(n==0){
		ret[0]=a[0];
	}else{
		vec a2(n);
		REP(i,n){
			a2[i]=inv[(i-n+p)%p]*(a[i]-a[n]+p)%p;
		}
		vec f2=slv(n-1,a2);
		REP(i,n){
			ret[i+1]=f2[i];
		}
		REP(i,n){
			ret[i]-=n*f2[i]%p;
			ret[i]+=p;
			ret[i]%=p;
		}
		ret[0]+=a[n];
		ret[0]%=p;
	}
	return ret;
}
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin>>p;
	vec a(p);
	REP(i,p-1){
		inv[i+1]=minv(i+1);
	}
	REP(i,p)cin>>a[i];
	vec f=slv(p-1,a);
	REP(i,p){
		if(i)cout<<' ';
		cout<<f[i];
	}
	cout<<endl;
}