#include #define REP(i,n) for(int i=0,i##_len=int(n);i 0 ) { if(p&1) x*=x; x %= mod; p >>= 1; } return x; } int main(){ ll a,n,m; cin>>a>>n>>m; vector A(m,1); int cyc = 0; for(int i = 0; i < m; i++) { A[i+1] = mpow(a, A[i], m); if( A[i+1] == A[0] ) { cyc = i+1; break; } } cout << A[n%cyc] << endl; }