def DoublevisionH_e(m, k, p, C): y = (m + k) % p for C_i in C: m = powmod((m + C_i) % p, 5, p) k = powmod((k + y) % p, 5, p) y = (m + k) % p return y
def DoublevisionH_x(m, k, p, C, r=4): y = 0 for i in range(0, r): y = (m * k) % p m = powmod(m + y, 5, p) % p k = powmod(k + C[i], 5, p) % p return y
def DoublevisionH_j(m, p, r, k): y = 0 for i in range(0, r): y = (m * k) % p m = powmod(m + C[i * 2], 5, p) k = (powmod((k + C[(i * 2) + 1]) % p, 5, p) * m) % p return y
def DoublevisionH_xxy(k, m, p, C, r=5): y = 0 for i in range(0, r): m = powmod((m + C[(2*i)]) % p, 5, p) k = powmod((k + C[(2*i)+1]) % p, 5, p) + m y = (m * k) % p return y
def DoublevisionH_e(m, k, p, C, r=4): y = (m + k) % p for i in range(0, r): m = powmod((m + C[i]) % p, 5, p) k = powmod((k + y) % p, 5, p) y = (m + k) % p return y
def DoublevisionH_xx(k, p, r=5): m = r y = 0 for i in range(0, r): y = (m + k) % p m = powmod((m + C[i]) % p, 5, p) k = (powmod((k + y) % p, 5, p)) % p return y
def DoublevisionH_ex(k, p, r=5): m = k y = 0 for i in range(0, r): y = (m * k) % p m = powmod((m + C[i]) % p, 5, p) k = powmod((k + y) % p, 5, p) * m return y
def DoublevisionH_e(k, p, r=5): m = p-r y = 0 for i in range(0, r): y = (m + k) % p m = powmod((m + C[i]) % p, 5, p) k = powmod((k + y) % p, 5, p) return y
def DoublevisionM(n, p): a = n b = n for i in range(0, 4): y = (a + b) % p a = powmod((a + C[(i * 2)]) % p, 5, p) b = powmod((b + C[(i * 2) + 1]) % p, 5, p) + y % p return a
def DoublevisionM(x_L, x_R, p, C, r=4): a = x_L b = x_R for i in range(0, r): y = (a + b) % p a = powmod((a + C[(i * 2)]) % p, 5, p) b = powmod((b + C[(i * 2) + 1]) % p, 5, p) + y % p return a
def DoublevisionH_i(m, k, p, C, r=4): y = 0 e = 5 for i in range(0, r): y = (m + k) % p m = (powmod((m + C[(2*i)]) % p, e, p) + y) % p k = (powmod((k + C[(2*i)+1]) % p, e, p) + y) % p return y
def DoublevisionL(n, p): for i in range(0, 10): n = powmod((n + C[(i * 2)]) % p, 5, p) % p return n