#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int re()
{
int f=1,num=0;
char c=getchar();
while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') num=num*10+c-'0',c=getchar();
return num*f;
}
int n,k,p;
int a=1,b=1,ak=1,bk=1;
signed main()
{
freopen("noi2011_rabbit.in","r",stdin);
freopen("noi2011_rabbit.out","w",stdout);
n=re();k=re();p=re();
for(int i=3,c,ck,t;i<=n;i++)
{
t=(bool)((ak+bk)%k==1);
c=a+b-t;ck=ak+bk-t;
a=b%p;b=c%p;
ak=bk%k;bk=ck%k;
}
printf("%lld",b);
return 0;
}