#include<stdio.h>
long int t0,t1,t4,t5,a,b,c,d,e,m,n,i,j,k,l,r,t02,t12,t2,ret,aa,ii,
p0[17][17],p1[17][17],p2[17][17],p3[17][17],p4[17][17],p5[17][17],
p02[17][17],p12[17][17],p22[17][17],p32[17][17],p42[17][17],
paux[17][17],ee[17][7000];
void pp(long int q[17][17],long int qq[17][17]);
void ad(long int cc,long int q[17][17],long int qq[17][17]);
long int val(long int q[17][17],long int x,long int y);
int main()
{
FILE *f,*g;
f=fopen("rsir.in","r");
g=fopen("rsir.out","w");
fscanf(f,"%ld%ld",&t0,&t1);
fscanf(f,"%ld%ld",&a,&b);
fscanf(f,"%ld%ld%ld",&c,&d,&e);
fscanf(f,"%ld%ld",&m,&n);
a=a%m;b=b%m;
c=c%m;d=d%m;e=e%m;
t0=t0%m;
t1=t1%m;
p0[1][0]=1;p02[2][0]=1;
p1[0][1]=1;p12[0][2]=1;
p2[0][0]=e;p2[2][0]=a;p2[0][2]=b;p2[1][0]=c;p2[0][1]=d;
pp(p2,p22);
ad(a,p12,p3);
ad(b,p22,p3);
ad(c,p1,p3);
ad(d,p2,p3);
p3[0][0]+=e;
pp(p3,p32);
ad(a,p22,p4);
ad(b,p32,p4);
ad(c,p2,p4);
ad(d,p3,p4);
p4[0][0]+=e;
pp(p4,p42);
ad(a,p32,p5);
ad(b,p42,p5);
ad(c,p3,p5);
ad(d,p4,p5);
p5[0][0]+=e;
k=n/4;
r=n%4;
while(r)
{
t02=(t0*t0)%m;
t12=(t1*t1)%m;
t2=(a*t02+b*t12+c*t0+d*t1+e)%m;
t0=t1;t1=t2;r--;
}
for(i=0;i<m;i++){ ee[0][i]=1;for(j=1;j<=16;j++) ee[j][i]=(ee[j-1][i]*i)%m;}
for(ii=1;ii<=k;ii++)
{ t4=val(p4,t0,t1);
t5=val(p5,t0,t1);
t0=t4;
t1=t5;
}
fprintf(g,"%lld\n",t0);
fcloseall();
return 0;
}
void pp(long int q[17][17],long int qq[17][17])
{
for(i=0;i<=16;i++)
for(j=0;j<=16;j++)
for(k=0;k<=i;k++)
for(l=0;l<=j;l++)
{ qq[i][j]+=q[k][l]*q[i-k][j-l];
qq[i][j]%=m;
}
}
void ad(long int cc,long int q[17][17],long int qq[17][17])
{
for(i=0;i<=16;i++)
for(j=0;j<=16;j++)
{ qq[i][j]+=cc*q[i][j];
qq[i][j]%=m;
}
}
long int val(long int q[17][17],long int x,long int y)
{
ret=0;
for(i=0;i<=16;i++)
for(j=0;j<=16;j++)
{ aa=(ee[i][x]*ee[j][y])%m;
aa=(q[i][j]*aa)%m;
ret+=aa;
ret%=m;
}
return ret;
}