/**
 * Calculate
 * R := B
 * P mod M
 * for large values of B, P, and M using an efficient algorithm. (That’s right, this problem has a time
 * dependency !!!.)
 * Input
 * The input will contain several test cases, each of them as described below. Consecutive test cases are
 * separated by a single blank line.
 * Three integer values (in the order B, P, M) will be read one number per line. B and P are integers
 * in the range 0 to 2147483647 inclusive. M is an integer in the range 1 to 46340 inclusive.
 * Output
 * For each test, the result of the computation. A single integer on a line by itself.
 * Sample Input
 * 3
 * 18132
 * 17
 * 17
 * 1765
 * 3
 * 2374859
 * 3029382
 * 36123
 * Sample Output
 * 13
 * 2
 * 13195
 */

//https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=727&page=show_problem&problem=310

import java.math.BigInteger;
import java.util.Scanner;

public class BigMod {

	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		while (input.hasNext()) {
			BigInteger b = input.nextBigInteger();
			BigInteger p = input.nextBigInteger();
			BigInteger m = input.nextBigInteger();
			System.out.println(b.modPow(p, m));
		}
	}
}
