#ATagc036f. [AGC036F] Square Constraints

[AGC036F] Square Constraints

题目描述

给定一个整数 NN。请计算满足以下条件的 (0,1,,2N1)(0,1,\cdots,2N-1) 的一个排列 (P0,P1,,P2N1)(P_0,P_1,\cdots,P_{2N-1}) 的个数。由于答案可能非常大,请输出其对 MM 取模的结果。

  • 条件:对于所有 i (0i2N1)i\ (0\leq i\leq 2N-1),都有 N2i2+Pi2(2N)2N^2 \leq i^2 + P_i^2 \leq (2N)^2

输入格式

输入从标准输入按以下格式给出。

NN MM

输出格式

输出满足条件的排列个数对 MM 取模的结果。

样例 1

输入

2 998244353

输出

4

样例 2

输入

10 998244353

输出

53999264

样例 3

输入

200 998244353

输出

112633322

说明/提示

限制

  • 1N2501 \leq N \leq 250
  • 2M1092 \leq M \leq 10^9
  • 输入的所有值均为整数。

样例解释 1

满足条件的排列共有如下 44 种。

  • (2,3,0,1)(2,3,0,1)
  • (2,3,1,0)(2,3,1,0)
  • (3,2,0,1)(3,2,0,1)
  • (3,2,1,0)(3,2,1,0)

由 ChatGPT 4.1 翻译