#include <iostream>
#include <iomanip>
using namespace std;
unsigned long long happy(unsigned int n, unsigned int base)
{
if (n%2 || n < 2 || base < 2) throw runtime_error("Wrong data");
auto N = [](unsigned int n, unsigned int k,
unsigned int base, auto&&N)
{
if (n == 1) return (unsigned long long)(k < base);
unsigned long long s = 0;
for(unsigned int l = 0; l < base; ++l) s += N(n-1,k-l,base,N);
return s;
};
unsigned long long s = 0;
for(unsigned int k = 0; k <= (base-1)*n/2; ++k)
{
auto m = N(n/2,k,base,N);
s += m*m;
}
return s;
}
int main(int argc, char * argv[])
{
cout << 13*happy(12,13) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1bnNpZ25lZCBsb25nIGxvbmcgaGFwcHkodW5zaWduZWQgaW50IG4sIHVuc2lnbmVkIGludCBiYXNlKQp7CiAgICBpZiAobiUyIHx8IG4gPCAyIHx8IGJhc2UgPCAyKSB0aHJvdyBydW50aW1lX2Vycm9yKCJXcm9uZyBkYXRhIik7CiAgICBhdXRvIE4gPSBbXSh1bnNpZ25lZCBpbnQgbiwgdW5zaWduZWQgaW50IGssCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgYmFzZSwgYXV0byYmTikKICAgIHsKICAgICAgICBpZiAobiA9PSAxKSByZXR1cm4gKHVuc2lnbmVkIGxvbmcgbG9uZykoayA8IGJhc2UpOwogICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzID0gMDsKICAgICAgICBmb3IodW5zaWduZWQgaW50IGwgPSAwOyBsIDwgYmFzZTsgKytsKSBzICs9IE4obi0xLGstbCxiYXNlLE4pOwogICAgICAgIHJldHVybiBzOwogICAgfTsKICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBzID0gMDsKICAgIGZvcih1bnNpZ25lZCBpbnQgayA9IDA7IGsgPD0gKGJhc2UtMSkqbi8yOyArK2spCiAgICB7CiAgICAgICAgYXV0byBtID0gTihuLzIsayxiYXNlLE4pOwogICAgICAgIHMgKz0gbSptOwogICAgfQogICAgcmV0dXJuIHM7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICogYXJndltdKQp7CiAgICBjb3V0IDw8IDEzKmhhcHB5KDEyLDEzKSA8PCBlbmRsOwp9Cg==