#include<bits/stdc++.h>
using namespace std;

const int N=130005;
int n,mx=125000;
long long mod,ans;
long long f[N],s[N],ss[N];

int main()
{
	scanf("%d%d",&n,&mod);
	f[0]=1;
	for(int i=0;i<=mx;i++) s[i]=1;
	for(int i=0;i<=mx;i++) ss[i]=i+1;
	for(int t=2;t<=n;t++)
	{
//		cout<<t<<endl;
		ans=ans*t%mod;
		for(int i=0;i<=mx;i++)
		{
			f[i]=s[i];
			if(i-t+1>=0) f[i]=(f[i]+mod-s[i-t+1])%mod;
		}
		for(int i=1;i<=mx;i++) s[i]=(s[i-1]+f[i])%mod;
		for(int i=1;i<=mx;i++) ss[i]=(ss[i-1]+s[i])%mod;
		long long tm=0;
		for(int i=2;i<=mx;i++)
		{
			tm=(tm+s[i-2]*(t-1))%mod;
			if(i>2) tm=(tm+mod-ss[i-3])%mod;
			if(i-t+1>=3) tm=(tm+ss[i-3-t+1])%mod;
			ans=(ans+tm*f[i])%mod;
//			cout<<' '<<tm;
		}
//		cout<<endl;
//		for(int i=0;i<=t*t;i++)
//		{
//			cout<<' '<<f[i];
//		}
//		cout<<endl;
	}
	printf("%lld\n",ans);
}