#!/usr/bin/python3 # Vstup programu: # x_0 x_1 x_2 (první tři čísla čipů), # A B C (koeficienty pro odvození čísla čipu), # N (kterým modulíme výsledek), # K (který čip nás zajímá). # Matice jsou reprezentované jako pole řádků: # [[1, 2, 3], # [4, 5, 6], # [7, 8, 9]] # Matice[i][j] je buňka v i-tém řádku a j-tém sloupci. def vynasob_matice(A, B): C = [[0 for _ in range(3)] for _ in range(3)] for i in range(3): for j in range(3): for k in range(3): C[i][j] += A[i][k] * B[k][j] return C def vynasob_matici_vektorem(A, x): y = [0 for _ in range(3)] for i in range(3): for j in range(3): y[i] += A[i][j] * x[j] return y def identita(): return [[1, 0, 0], [0, 1, 0], [0, 0, 1]] def spocitej_mocninu_matice_modulo(A, exp, N): """Spočítá exp-tou mocninu matice A modulo N v čase O(log(exp)).""" if exp == 0: return identita() else: P = spocitej_mocninu_matice_modulo(vynasob_matice(A, A), exp // 2, N) if exp % 2 == 1: P = vynasob_matice(P, A) for i in range(3): for j in range(3): P[i][j] %= N return P def najdi_kty_cip(x1, x2, x3, A, B, C, N, K): M = [[0, 1, 0], [0, 0, 1], [A, B, C]] exponent = (K - 1) M_na_exponent = spocitej_mocninu_matice_modulo(M, exponent, N) # Spočítej poslední tři čipy. xK, xK_plus1, xK_plus2 = vynasob_matici_vektorem(M_na_exponent, [x1, x2, x3]) return xK % N x1, x2, x3 = map(int, input().split()) A, B, C = map(int, input().split()) N = int(input()) K = int(input()) print(najdi_kty_cip(x1, x2, x3, A, B, C, N, K))