#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=51;
int f[N][N*N],s[N][N*N],t[N],ans[N];
int main() {
    int n,mod;
    scanf("%d%d",&n,&mod);
    f[0][0]=1;s[0][0]=1;
    for(int i=1;i<=n*(n-1)/2;i++) s[0][i]=1;
    for(int i=1;i<=n;i++) {
        for(int j=0;j<=n*(n-1)/2;j++) {
            if(j>=i) f[i][j]=(s[i-1][j]-s[i-1][j-i]+mod)%mod;
            else f[i][j]=s[i-1][j];
            if(j==0) s[i][j]=f[i][j];
            else s[i][j]=(s[i][j-1]+f[i][j])%mod;
        }
    }
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=i;j++) {
            for(int k=j+1;k<=i;k++) {
                for(int w=0;w<=(i-1)*(i-2)/2;w++) {
                    if(w+j-k-1>=0) {
                        t[i]+=1ll*f[i-1][w]*s[i-1][w+j-k-1]%mod;
                        t[i]%=mod;
                    }
                }
            }
        }
    }
    for(int i=1;i<=n;i++) {
        if(i==1) ans[i]=t[i];
        else ans[i]=(1ll*i*ans[i-1]%mod+t[i])%mod;
    }
    printf("%d\n",ans[n]);
    return 0;
}
