func_code_string: #include <bits/stdc++.h>   using namespace std;      typedef long long LL;      const int maxn = 51;      LL f[maxn][2][maxn * maxn];      int n, mod;      void solve() {       scanf( %d%d , &n, &mod);       int M = n * (n - 1) / 2;          memset(f, 0, sizeof f);       f[0][0][M] = 1 % mod;       for (int i = 0; i < n; i++) {           for (int r = 0; r <= M + M; r++) {               if (f[i][0][r]) {                   for (int k1 = 0; k1 < n - i; k1++)                       for (int k2 = k1; k2 < n - i; k2++) {                           if (k1 == k2)                               (f[i + 1][0][r] += f[i][0][r]) %= mod;                           else                               (f[i + 1][1][r + k1 - k2] += f[i][0][r]) %= mod;                       }               }                  if (f[i][1][r]) {                   for (int k1 = 0; k1 < n - i; k1++)                       for (int k2 = 0; k2 < n - i; k2++)                           (f[i + 1][1][r + k1 - k2] += f[i][1][r]) %= mod;               }           }       }       // for (int r = M; r <= 2 * M; r++) {       //     cout << f[n][1][r] <<    ;       // }       // cout << endl;          LL res = 0;       for (int r = M + 1; r <= M + n * (n - 1) / 2; r++) {           (res += f[n][1][r]) %= mod;       }       printf( %lld n , res);   }   int main() {       int _ = 1;       while (_--) {           solve();       }       return 0;   }   