#include<iostream>
#include<stdio.h>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string.h>
#define jc[i][j] jc.a[i][j]
#define res[i][j] res.a[i][j]
#define base[i][j] base.a[i][j]
#define ans[i][j] ans.a[i][j]
#define x[i][j] x.a[i][j]
#define y[i][j] y.a[i][j]
#define ll long long
#define N 15
inline ll read();
struct Matrix{
int n,m;
ll a[N][N];
inline void empty(){
memset(a,0,sizeof(a));
}
};
Matrix base,res,ans,jc;
ll n,mod,p,q,r,t,u,v,w,x,y,z;
inline void prepare();
inline void init();
inline ll gsc(ll a,ll b,ll mod);
inline Matrix operator *(Matrix x,Matrix y);
inline Matrix ksm(Matrix x,ll k);
int main()
{
prepare();
if(n<2)
{
printf("nodgd 1\n");
printf("Ciocio 1\n");
printf("Nicole 1\n");
return 0;
}
init();
ans=ans*ksm(base,n-2);
printf("nodgd %lld\n",ans[1][1]);
printf("Ciocio %lld\n",ans[1][2]);
printf("Nicole %lld\n",ans[1][3]);
return 0;
}
inline ll read()
{
ll sum=0;
bool flag=0;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')flag=1;
c=getchar();
}
while(c>='0'&&c<='9')
{
sum=sum*10+c-'0';
c=getchar();
}
if(flag)return -sum;
else return sum;
}
inline void prepare()
{
n=read(),mod=read();
p=read(),q=read(),r=read(),t=read();
u=read(),v=read(),w=read();
x=read(),y=read(),z=read();
}
inline void init()
{
//res
for(int i=1;i<=11;i++)jc[i][j]=1;
//base
base.n=base.m=11;
base[1][1]=p,base[1][2]=base[1][3]=base[1][4]=1;
base[2][2]=u,base[2][1]=base[2][3]=base[2][5]=1;
base[3][3]=x,base[3][1]=base[3][2]=base[3][6]=1;
base[4][1]=q;
base[5][2]=v;
base[6][3]=y;
base[7][1]=r,base[7][7]=1;
base[8][1]=t,base[8][3]=base[8][8]=1,base[8][7]=2;
base[9][3]=2,base[9][1]=base[9][7]=base[9][8]=base[9][9]=1;
base[10][10]=w,base[10][2]=1;
base[11][11]=z,base[11][3]=1;
//ans
ans.n=1,ans.m=11;
ans[1][1]=ans[1][2]=ans[1][3]=3;
ans[1][4]=ans[1][5]=ans[1][6]=ans[1][7]=ans[1][8]=ans[1][9]=1;
ans[1][10]=w;
ans[1][11]=z;
}
inline ll gsc(ll a,ll b,ll mod)
{
ll res=0;
while(b)
{
if(b&1)
{
res+=a;
res%=mod;
}
a+=a;
a%=res;
b>>=1;
}
return res;
}
inline Matrix operator *(Matrix x,Matrix y)
{
memset(res.a,0,sizeof(res.a));
res.n=x.n;
res.n=y.m;
for(int i=1;i<=x.n;i++)
{
for(int j=1;j<=y.m;j++)
{
for(int k=1;k<=x.m;k++)
{
res[i][j]+=(gsc(x[i][k],y[k][j],mod));
res[i][j]%=mod;
}
}
}
return res;
}
inline Matrix ksm(Matrix x,ll k)
{
jc.n=a.n;
jc.m=a.n;
whlie(k)
{
if(k&1)jc=jc*x;
k>>=1;
x=x*x;
}
return res;
}