#include using namespace std; vector> f(vector> A, vector> B, long long mod){ vector> C(2,vector(2)); for(int i=0; i<2; i++){ for(int j=0; j<2; j++){ for(int k=0; k<2; k++){ C.at(i).at(j) += A.at(i).at(k) * B.at(k).at(j); C.at(i).at(j) %= mod; } } } return C; } vector> modpow(vector> A, long long n, long long mod){ vector> ret={{1,0},{0,1}}; while(n > 0){ if(n & 1) ret = f(ret,A,mod); A = f(A,A,mod); n >>= 1; } return ret; } int main(){ long long N,M; cin >> N >> M; vector> A = {{1,1},{1,2}}; vector> ans = modpow(A,(N-1)/2,M); cout << ans.at((N+1)%2).at(1) << endl; return 0; }