View problem - Great Pow! (kriii1_G)

Time limitMemory limit# of submissions# of submitted usersSolved #Accepted user ratio
10000 ms64 MiB108484287.50%

aa의 거듭제곱 aba^{b}를 편하게 powa(b)pow_{a}(b)라고 나타내어 보자.

그리고 powa0(a)=a,powak+1(a)=powa(powak(a))(k0)pow_{a}^{0}(a) = a, pow_{a}^{k+1}(a) = pow_{a} (pow_{a}^{k}(a)) (k \ge 0)라고 하자.

우리의 일은 aakk가 주어질 때 powak(a)pow_{a}^{k}(a)를 계산하는 것이다. 즉

aaaaa......aaa^{a^{a^{a^{a^{...^{{...}^{{a}^{a}}}}}}}} (aak+1k+1개)

을 계산하는 것이다. 주의해야 할 점은 만약 k=3k = 3이라고 할 때

(aa)aa(aa)(a^{a})^{a} \neq a^{(a^{a})}

라는 것이다. 우리가 구하는 것은 후자이다.

입력 형식

첫 번째 줄에 aakk (1a109,0k109)(1 \le a \le 10^{9}, 0 \le k \le 10^{9})가 공백으로 구분되어 주어진다.

출력 형식

powak(a)pow_{a}^{k}(a)의 값을 출력한다. 답이 매우 커질 수 있으므로 답을 a+1a+1로 나눈 나머지를 출력한다.

입력

2 3

출력

1

pow23(2)=2222=65,536pow_{2}^{3}(2) = 2^{2^{2^{2}}} = 65,536이므로, 이를 33으로 나눈 나머지인 11을 출력한다.