#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define ll long long #define maxn 100005 ll mul(ll a,ll b,ll m) { ll res=0; while(b) { if(b&1) res+=a; if(res>m) res-=m; a+=a; if(a>m) a-=m; b>>=1; } return res; } ll pow(ll a,ll b,ll m) { ll res=1; while(b) { if(b&1) res=mul(res,a,m); a=mul(a,a,m); b>>=1; } return res; } int main() { ll n,p; while(~scanf("%lld%lld",&n,&p)) { if(n==1&&p!=1) {puts("1");continue;} else if(n==1&&p==1) {puts("0");continue;} ll ans=pow(2,n,p)-2; ans%=p; ans=(ans+p)%p; printf("%lld\n",ans); } return 0; }