#include <cstdio>
#include <algorithm>
#define pii pair <int, int>
#define f first
#define s second
using namespace std;
int t0, t1, a, b, x, y, z, M;
int p1, p2, x11, x12, x21, x22, pas1, pas2;
int nxt (int tn2, int tn1)
{
int r1 = tn2 * tn2;
if (r1 >= M) r1 %= M;
r1 *= a;
if (r1 >= M) r1 %= M;
int r2 = tn1 * tn1;
if (r2 >= M) r2 %= M;
r2 *= b;
if (r2 >= M) r2 %= M;
r1 += r2;
int r3 = x * tn2;
if (r3 >= M) r3 %= M;
int r4 = y * tn1;
if (r4 >= M) r4 %= M;
r1 += r3;
r1 += r4;
r1 += z;
r1 -= (r1 >= M) * M;
r1 -= (r1 >= M) * M;
r1 -= (r1 >= M) * M;
r1 -= (r1 >= M) * M;
return r1;
}
void solve ()
{
for (;;)
{
if (x11 == x21 && x12 == x22 && p2 > p1 + 1) return;
int aux;
if (pas1)
{
aux = nxt (x11, x12);
x11 = x12;
x12 = aux;
++p1;
}
aux = nxt (x21, x22);
x21 = x22;
x22 = aux;
++p2;
if (pas2 > 0)
{
aux = nxt (x21, x22);
x21 = x22;
x22 = aux;
++p2;
}
}
}
int main ()
{
freopen ("rsir.in", "r", stdin);
freopen ("rsir.out", "w", stdout);
scanf ("%d %d %d %d %d %d %d %d", &t0, &t1, &a, &b, &x, &y, &z, &M);
long long n;
scanf ("%lld", &n);
if (t0 >= M) t0 %= M;
if (t1 >= M) t1 %= M;
if (a >= M) a %= M;
if (b >= M) b %= M;
if (x >= M) x %= M;
if (y >= M) y %= M;
if (z >= M) z %= M;
p1 = 0, p2 = 0, x11 = t0, x12 = t1, x21 = t0, x22 = t1, pas1 = 1, pas2 = 2;
solve ();
p1 = 0, x11 = t0, x12 = t1, pas2 = 1;
solve ();
int st = p1;
p2 = p1, x21 = x11, x22 = x12, pas1 = 0, pas2 = 1;
solve ();
int per = p2 - p1;
if (n < 1LL * st)
{
x11 = t0, x12 = t1;
for (int i = 1; i <= n; ++i)
{
int aux = nxt (x11, x12);
x11 = x12;
x12 = aux;
}
printf ("%d\n", x11);
return 0;
}
n -= 1LL * st;
n %= 1LL * per;
for (int i = 1; i <= n; ++i)
{
int aux = nxt (x11, x12);
x11 = x12;
x12 = aux;
}
printf ("%d\n", x11);
return 0;
}