#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,p,ifac[1000005],fac[1000005],sum[1000005];
int ksm(int a,int b)
{
int ans=1;
while(b)
{
if(b%2)ans=ans*a%p;
a=a*a%p;
b/=2;
}
return ans;
}
void init()
{
sum[1]=fac[1]=fac[0]=ifac[0]=1;
for(int i=2;i<=n;i++)
{
fac[i]=fac[i-1]*i%p;
sum[i]=(sum[i-1]+fac[i])%p;
}
ifac[n]=ksm(fac[n],p-2);
for(int i=n-1;i>=0;i--)
{
ifac[i]=ifac[i+1]*(i+1)%p;
}
}
int C(int n,int m)
{
return fac[n]*ifac[m]%p*ifac[n-m]%p;
}
signed main()
{
cin>>n>>m>>p;
if(m==1)
{
cout<<n%p;
return 0;
}
init();
int ans=0;
for(int j=1;j<=n;j++)
{
int k=C(n-j+m-2,m-2);
ans+=(k*sum[m]%p*j%p);
ans%=p;
}
cout<<ans%p;
}