#include<stdio.h>
long long int tt0,tt1,tt2,tc0,tc1,aa,bb,cc,dd,ee,mm,nn,ii,jj,p0,p1,k,salt,skip,
u[4][7000];
int main()
{
FILE *f,*g;
f=fopen("rsir.in","r");
g=fopen("rsir.out","w");
fscanf(f,"%lld%lld",&tt0,&tt1);
fscanf(f,"%lld%lld",&aa,&bb);
fscanf(f,"%lld%lld%lld",&cc,&dd,&ee);
fscanf(f,"%lld%lld",&mm,&nn);
aa=aa%mm;bb=bb%mm;
cc=cc%mm;dd=dd%mm;ee=ee%mm;
tt0=tt0%mm;tt1=tt1%mm;
tc0=tt0;tc1=tt1;
if(nn==0)
{
fprintf(g,"%lld\n",tt0);
fcloseall();
return 0;
}
if(nn==1)
{
fprintf(g,"%lld\n",tt1);
fcloseall();
return 0;
}
for(ii=0;ii<4;ii++)for(jj=0;jj<mm;jj++)u[ii][jj]=-1;
if(tt0==tt1)
{ u[0][tt0]=1;u[1][tt0]=0;}
else
{ u[0][tt0]=0;u[0][tt1]=1;}
for(ii=2;;ii++)
{
tt2=(aa*tt0*tt0+bb*tt1*tt1+cc*tt0+dd*tt1+ee)%mm;
tt0=tt1;
tt1=tt2;
if(ii==nn)
{
fprintf(g,"%lld\n",tt1);
fcloseall();
return 0;
}
u[3][tt1]=u[2][tt1];
u[2][tt1]=u[1][tt1];
u[1][tt1]=u[0][tt1];
u[0][tt1]=ii;
if(tt1!=tt0)
{ if(u[1][tt1]==u[1][tt0]+1)
{ p0=u[1][tt0];p1=u[0][tt0];break;}
}
else
{
if(u[1][tt0]==u[2][tt0]+1)
{
fprintf(g,"%lld\n",tt1);
fcloseall();
return 0;
}
else
if(u[2][tt0]==u[3][tt0]+1)
{ p0=u[3][tt0];p1=u[1][tt0];break;}
}
}
salt=p1-p0;
k=nn/salt;
skip=k*salt;
nn=nn-skip;
tt0=tc0;tt1=tc1;
for(ii=0;ii<nn;ii++)
{
tt2=(aa*tt0*tt0+bb*tt1*tt1+cc*tt0+dd*tt1+ee)%mm;
tt0=tt1;
tt1=tt2;
}
fprintf(g,"%lld\n",tt0);
fcloseall();
return 0;
}