#include<cstdio>
#include<vector>
#define f first
#define s second
using namespace std;
int t0,t1,n,m,x,y,z,a,b,A[7001],B[7001],k,i,j;
pair<int,int> ti,tj;
//Tn = a * Tn-2^2 + b * Tn-1^2 + x * Tn-2 + y * Tn-1 + z
//T0, T1, a, b, x, y, z, M si n
pair<int,int> f(pair<int,int> t)
{
pair<int,int> res;
res.f=t.s;
res.s=(A[t.f]+B[t.s])%m;
return res;
}
int main()
{
freopen("rsir.in","r",stdin);
freopen("rsir.out","w",stdout);
scanf("%d %d %d %d %d %d %d %d %d",&t0,&t1,&a,&b,&x,&y,&z,&m,&n);
t0%=m;
t1%=m;
a%=m;
b%=m;
x%=m;
y%=m;
z%=m;
ti.f=t0;
ti.s=t1;
tj.f=t0;
tj.s=t1;
for(i=0;i<m;i++)
{
k=(i*i)%m;
A[i]=(((i*i)%m)*a+i*x)%m;
B[i]=(((i*i)%m)*a+i*y+z)%m;
}
i=0,j=2;
if(n==0)
{
printf("%d\n",t0);
goto end;
}
if(n==1)
{
printf("%d\n",t1);
goto end;
}
tj=f(f(tj));
while(j+2<=n && ti!=tj)
{
ti=f(ti);
tj=f(f(tj));
i++;
j+=2;
}
if(j==n)
{
printf("%d\n",tj.f);
goto end;
}
if(j+1==n)
{
printf("%d\n",tj.s);
goto end;
}
n=n-i;
n=n%(j-i);
while(n)
{
ti=f(ti);
n--;
}
printf("%d\n",ti.f);
end:
fclose(stdout);
return 0;
}