func_code_string: #include <iostream>      using namespace std;      long long n,mod;   long long cnt[55][2505];   long long cntS[55][2505];   long long per[55];   long long ans[55];      void calcCnt()   {       cnt[0][0]=1;          for(int i=1;i<=n;i++)       {           for(int inv=0;inv<=i*i;inv++)               for(int nval=1;nval<=i;nval++)               {                   if(inv>=i-nval)                   {                       cnt[i][inv]+=cnt[i-1][inv-(i-nval)];                       cnt[i][inv]%=mod;                   }               }              cntS[i][0]=cnt[i][0];           for(int inv=1;inv<=i*i;inv++)               cntS[i][inv]=(cntS[i][inv-1]+cnt[i][inv])%mod;       }   }      void calcPer()   {       for(int i=1;i<=n;i++)           for(int dif=1;dif<i;dif++)           {               long long nr=i-dif;               for(int invP=dif+1;invP<=i*i;invP++)               {                   long long nans=cnt[i-1][invP]*cntS[i-1][invP-dif-1];                   nans%=mod;                   nans*=nr;                   nans%=mod;                      per[i]+=nans;                   per[i]%=mod;               }           }   }   void calcAns()   {       for(int i=1;i<=n;i++)       {           ans[i]=i*ans[i-1]+per[i];           ans[i]%=mod;       }   }   int main()   {       cin>>n>>mod;          calcCnt();       calcPer();       calcAns();          cout<<ans[n];       return 0;   }   