近期发现部分用户尝试利用判题系统的评测信息进行作弊,严重破坏了公平竞争的环境。为维护良好的交流与学习氛围,已对判题机进行了优化,当程序遇到测试点不通过时会立即返回而不评测更多测试点;并且延长提交间隔为60秒。作弊行为不仅违背了学习的初衷,还侵害了其他用户的公平权益,希望所有用户能够遵守规范,专注算法与思维能力的提升。对于恶意多次尝试的用户,我们将保留进一步处置的权利。 —— Administrator

100523 - 快速幂

时间限制

50 毫秒

内存限制

128 MB

通过次数

3

提交次数

17

如果用朴素方法求解a^n时,将会计算n-1次乘法,如果n非常大,那么这将消耗非常多的时间。如果把幂指数n拆分为二进制形式,将会有所改观。以n=13为例,朴素算法需要计算12次乘法,而拆分n之后:

a^{n}=a^{11}={a^{2}}^{3}*{a^{2}}^{2}*{a^{2}}^{0}

此时,只需运行7次乘法。求a^n的结果对m取模的结果。

输入

一行,由单个空格分隔的三个正整数,分别表示anm

对于100%的数据:

0\le a,n \le 2^{31}

1\le m \le 2^{31}

输出

一行,一个整数,表示结果。

样例

输入

2 32 123456

输出

56512

提示

n为0时,a^n=1