#agc036f. [agc036_f]Square Constraints

[agc036_f]Square Constraints

問題文

整数 NN が与えられます。 (0,1,cdots,2N1)(0,1,\\cdots,2N-1) の順列 (P0,P1,cdots,P2N1)(P_0,P_1,\\cdots,P_{2N-1}) であって、次の条件を満たすものの個数を求めてください。 ただし、答えは非常に大きくなることがあるので、MM で割ったあまりを求めてください。

  • 条件: すべての i(0leqileq2N1)i\\ (0 \\leq i \\leq 2N-1) について、N2leqi2+Pi2leq(2N)2N^2 \\leq i^2+P_i^2 \\leq (2N)^2 が成り立つ。

制約

  • 1leqNleq2501 \\leq N \\leq 250
  • 2leqMleq1092 \\leq M \\leq 10^9
  • 入力される値はすべて整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN MM

出力

条件を満たす順列の数を MM で割ったあまりを出力せよ。


入力例 1

2 998244353

出力例 1

4

条件を満たす順列は、以下の 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)

入力例 2

10 998244353

出力例 2

53999264

入力例 3

200 998244353

出力例 3

112633322