#include <stdio.h>
int T0, T1, T2, a, b, x, y, z, M, perioada, rst;
long long N;
int sqr(int X)
{ return (X * X) % M; }
int t_next(int t0, int t1)
{ return (a * sqr(t0) + b * sqr(t1) + x * t0 + y * t1 + z) % M; }
int main(void)
{
int i, t0, t1, t2, tt0, tt1;
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);
if (M == 1) { printf("0\n"); return 0; }
T0 %= M; T1 %= M;
for (i = 1, t0 = T0, t1 = T1; i < M * M; i++)
{
t2 = t_next(t0, t1);
t0 = t1; t1 = t2;
}
for (i = 1, tt0 = T0, tt1 = T1; i < M * M; i++)
{
if (T0 == t0 && T1 == t1)
{
perioada = M * M - i;
break;
}
T2 = t_next(T0, T1);
T0 = T1; T1 = T2;
}
rst = i-1;
if (N < rst)
{
for (i = 1, T0 = tt0, T1 = tt1; i < N; i++)
{
T2 = t_next(T0, T1);
T0 = T1; T1 = T2;
}
printf("%d\n", T1);
}
else
{
N -= rst; N %= perioada;
for (i = 1, T0 = t0, T1 = t1; i < N; i++)
{
T2 = t_next(T0, T1);
T0 = T1; T1 = T2;
}
printf("%d\n", T1);
}
return 0;
}