#include <cstdio>
using namespace std;
long i,j,m,a,b,x,y,z,t0,t1,p1,p2,r1,r2,p,np,q1,q2,s1,s2,ac,nr;
long A[7010],B[7010];
long long n;
void urm(long &x1, long &x2)
{
long x3;
x3=A[x1]+B[x2];
if (x3>=m)
x3-=m;
x3+=z;
if (x3>=m)
x3-=m;
x1=x2;x2=x3;
}
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);
for (i=0;i<m;i++)
{
A[i]=((1LL*i*i*a)%m+(1LL*i*x)%m)%m;
B[i]=((1LL*i*i*b)%m+(1LL*i*y)%m)%m;
}
//cu p merg din 1 in 1 si cu r-ul merg din 2 in 2
p1=r1=q1=t0;
p2=r2=q2=t1;
do
{
urm(p1,p2);
// printf("%d %d ",p1,p2);
urm(r1,r2);
urm(r1,r2);
// printf("%d %d\n",r1,r2);
p++;
}
while ((p1!=r1)||(p2!=r2));
//printf("%d\n",p);
for (i=2;i<=p+1;i++)
urm(t0,t1);
//printf("%d %d\n",t0,t1);
while ((t0!=q1)||(t1!=q2))
{
np++;
urm(t0,t1);
urm(q1,q2);
}
s1=q1;s2=q2;
//np--;
ac=(n-np)%p;
if (ac==0)
ac=p;
nr=1;
while (nr<ac)
{
urm(s1,s2);
nr++;
}
printf("%d\n",s2);
return 0;
}