M, N = map(int, input().split())
A, B, C, D = map(int, input().split())
E, F, G, H = map(int, input().split())
def gen(n, a, b, c, d):
f = [0] * n
now = a
for i in range(n):
f[i] = now
now = (b * now + c) % d
return f
p = gen(M, A, B, C, D)
q = gen(N, E, F, G, H)
mod = 3**19
H = 19
dat = []
for a in range(3):
binom = [0] * H
binom[0] = 1
res = [0] * H
pow_a = [1] * M
for i in range(1, M):
pow_a[i] = pow_a[i - 1] * a % mod
for i in range(M):
for j in range(H):
if i - j >= 0:
res[j] += p[i] * binom[j] % mod * pow_a[i - j]
res[j] %= mod
for j in range(H - 1, 0, -1):
binom[j] += binom[j - 1]
binom[j] %= mod
dat.append(res)
ans = 0
for i in q:
a, b = i % 3, i // 3 * 3
res = 0
pow_b = 1
for j in range(H):
res += dat[a][j] * pow_b
res %= mod
pow_b *= b
pow_b %= mod
res %= mod
ans ^= res
print(ans)