M = int(input()) D = int(input()) N = int(input()) B = int(input()) current = M % B if N == 0: res = current else: history = {current: 0} sequence = [current] steps = 0 found_cycle = False while steps < N: base = (current + D) % B exponent = current if base == 0: if exponent == 0: next_current = 1 % B else: next_current = 0 else: next_current = pow(base, exponent, B) steps += 1 if next_current in history: cycle_start = history[next_current] cycle_length = steps - cycle_start remaining_steps = N - cycle_start if remaining_steps < 0: res = sequence[N] else: res = sequence[cycle_start + (remaining_steps % cycle_length)] found_cycle = True break else: history[next_current] = steps sequence.append(next_current) current = next_current if not found_cycle: res = current if res == 10: print('A') else: print(res)