#include using namespace std; long seki[1000001],sekii[1000001]; long s[1000001]; long f(long m,long v){ if(v>=m)return s[m-1]; else return s[v]; } int main() { long l,r,m; cin >>l>>r>>m; { long ans =0; seki[0]=1; sekii[0]=1; for(int i=1;i<=m;i++)seki[i]=(seki[i-1]*i)%m; for(int i=1;i<=m;i++)sekii[i]=(sekii[i-1]*seki[i])%m; s[0]=0; for(int i=1;i<=m;i++){ s[i]=s[i-1]+sekii[i]; s[i]%=m; } cout<<(f(m,r)-f(m,l-1)+m*m)%m<<"\n"; } }