M = int(input()) D = int(input()) N = int(input()) B = int(input()) if N == 0: result = M % B print('A' if result == 10 else result) exit() D_mod = D % B m0 = M % B f = [0] * B for m in range(B): if m == 0: f[m] = 1 % B else: base = (m + D_mod) % B exponent = m f[m] = pow(base, exponent, B) prev_states = {} steps = [] current = m0 while True: if current in prev_states: start_step = prev_states[current] cycle = steps[start_step:] cycle_length = len(cycle) if N < len(steps): result = steps[N] else: remaining = N - start_step pos = remaining % cycle_length result = cycle[pos] break else: prev_states[current] = len(steps) steps.append(current) current = f[current] if result == 10: print('A') else: print(result)