#include<iostream>
using namespace std;
using ll=long long;
ll n,m,p,q,r,t,u,v,w,x,y,z;
struct Matrix{
ll a[11][11];
Matrix(){
for(int i=0;i<11;i++){
for(int j=0;j<11;j++){
a[i][j]=0;
}
}
}
inline void init1(){
for(int i=0;i<11;i++){a[i][0]=1;}
a[0][0]=a[2][0]=a[4][0]=3;
a[9][0]=w;a[10][0]=z;
}
inline void init2(){
a[0][0]=p;a[0][1]=q;a[0][2]=a[0][4]=a[0][8]=1;a[0][7]=t;a[0][6]=r;
a[1][0]=a[2][0]=a[2][4]=a[2][9]=1;a[2][2]=u;a[2][3]=v;
a[3][2]=a[4][0]=a[4][2]=a[4][7]=a[4][10]=1;a[4][4]=x;a[4][5]=y;a[4][8]=2;
a[5][4]=a[6][6]=1;a[6][7]=2;a[6][8]=1;a[7][7]=a[7][8]=a[8][8]=1;
a[9][9]=w;a[10][10]=z;
}
}mu,v1;
inline Matrix operator*(Matrix a,Matrix b){
Matrix c;
for(int i=0;i<11;i++){
for(int j=0;j<11;j++){
for(int k=0;k<11;k++){
c.a[i][j]+=a.a[i][k]*b.a[k][j]%m;
c.a[i][j]%=m;
}
}
}
return c;
}
inline Matrix pow(Matrix a,int k){
Matrix c;
for(int i=0;i<11;i++){c.a[i][i]=1;}
while(k){
if(k&1) c=c*a;
a=a*a;k>>=1;
}
return c;
}
int main(){
std::ios::sync_with_stdio(false);
std::cin.tie(0);std::cout.tie(0);
cin>>n>>m>>p>>q>>r>>t>>u>>v>>w>>x>>y>>z;
if(n==1||n==2&&m==2){cout<<"nodgd 1\nCiocio 1\nNicole1";return 0;}
else if(n==2&&m==3){cout<<"nodgd 0\nCiocio 0\nNicole0";return 0;}
v1.init1();mu.init2();
Matrix vans=v1*pow(mu,n-2);
int ans1=vans.a[0][0],ans2=vans.a[2][0],ans3=vans.a[4][0];
cout<<"nodgd "<<ans1<<"\nCiocio "<<ans2<<"\nNicole "<<ans3;
return 0;
}