#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const int maxlongint=2147483647; const int inf=1000000000; long long mod; long long ksc(long long i,long long j) { long long k=0,l=i%mod; while(j) { if(j&1) k=(k+l)%mod; l=(l+l)%mod; j=j>>1; } return k; } long long ksm(long long i,long long j) { long long k=1%mod,l=i%mod; while(j) { if(j&1) k=ksc(k,l)%mod; l=ksc(l,l)%mod; j=j>>1; } return k; } int main() { long long n; while(scanf("%I64d%I64d",&n,&mod)==2) { if(n==1) printf("%I64d\n",1%mod); else printf("%I64d\n",(ksm(2,n)-2+mod)%mod); } }