#include <cstdio>
#include <vector>
#define f first
#define s second
#define mp make_pair<int,int>
#define pr pair<int,int>
using namespace std;
int t0, t1, m, x, y, z, a, b, A[7001], B[7001], k, i, j, l;
long long n;
pr ti, tj;
pr f(pr t)
{
k = A[t.f] + B[t.s];
if(k >= m) k -= m;
return mp(t.s, k);
}
int main()
{
freopen("rsir.in","r",stdin);
freopen("rsir.out","w",stdout);
scanf("%d %d %d %d %d %d %d %d %lld",&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;
for(i = 0; i < m; i++)
{
k = (i * i) % m;
A[i] = (k * a + i * x) % m;
B[i] = (k * b + i * y + z) % m;
}
tj = f(ti);
if(!n)
{
printf("%d\n", t0);
return 0;
}
if(n == 1)
{
printf("%d\n",t1);
return 0;
}
for(l = 1, --n; n > 1 && ti != tj; ti = f(ti), tj = f(f(tj)),n = n - 2, ++l);
if(!n)
{
printf("%d\n",tj.f);
return 0;
}
if(n == 1)
{
printf("%d\n",tj.s);
return 0;
}
n %= l;
while(n)
{
ti = f(ti);
n--;
}
printf("%d\n", ti.f);
return 0;
}