1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <bits/stdc++.h>

using namespace std;
long long wynik,n,m,mod;

void PALOWANIE(int x, int p, int k)
{
    long long temp = 0;
    for(int i=0; i<m; i++)
    {
        for(int j=i; j<m; j++)
        {
            temp=m*m-p*p-k*k;
            temp/=2;
            temp%=mod;

            if((i>=p && i<=k) || (j<=k && j>=p) || (i<p && j>=p) || (j>k && i<=k))
            {
                if(x==n) wynik++;
                else PALOWANIE(x+1, i, j);
                wynik%=mod;

            }
        }
    }
}

int main()
{
    wynik=0;
    cin >> n >> m >> mod;
    PALOWANIE(1,0,m);
    cout << wynik << endl;
}