atcoder#ARC107C. [ARC107C] Shuffle Permutation

[ARC107C] Shuffle Permutation

Score : 500500 points

Problem Statement

Given are an N×NN \times N matrix and an integer KK. The entry in the ii-th row and jj-th column of this matrix is denoted as ai,ja_{i, j}. This matrix contains each of 1,2,,N21, 2, \dots, N^2 exactly once.

Sigma can repeat the following two kinds of operation arbitrarily many times in any order.

  • Pick two integers x,y(1x<yN)x, y (1 \leq x < y \leq N) that satisfy ai,x+ai,yKa_{i, x} + a_{i, y} \leq K for all ii (1iN1 \leq i \leq N) and swap the xx-th and the yy-th columns.
  • Pick two integers x,y(1x<yN)x, y (1 \leq x < y \leq N) that satisfy ax,i+ay,iKa_{x, i} + a_{y, i} \leq K for all ii (1iN1 \leq i \leq N) and swap the xx-th and the yy-th rows.

How many matrices can he obtain by these operations? Find it modulo 998244353998244353.

Constraints

  • 1N501 \leq N \leq 50
  • 1K2×N21 \leq K \leq 2 \times N^2
  • ai,ja_{i, j}'s are a rearrangement of 1,2,,N21, 2, \dots, N^2.
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN KK

a1,1a_{1, 1} a1,2a_{1, 2} ...... a1,Na_{1, N}

a2,1a_{2, 1} a2,2a_{2, 2} ...... a2,Na_{2, N}

::

aN,1a_{N, 1} aN,2a_{N, 2} ...... aN,Na_{N, N}

Output

Print the number of matrices Sigma can obtain modulo 998244353998244353.

3 13
3 2 7
4 8 9
1 6 5
12

For example, Sigma can swap two columns, by setting x=1,y=2x = 1, y = 2. After that, the resulting matrix will be:

2 3 7
8 4 9
6 1 5

After that, he can swap two row vectors by setting x=1,y=3x = 1, y = 3, resulting in the following matrix:

6 1 5
8 4 9
2 3 7
10 165
82 94 21 65 28 22 61 80 81 79
93 35 59 85 96 1 78 72 43 5
12 15 97 49 69 53 18 73 6 58
60 14 23 19 44 99 64 17 29 67
24 39 56 92 88 7 48 75 36 91
74 16 26 10 40 63 45 76 86 3
9 66 42 84 38 51 25 2 33 41
87 54 57 62 47 31 68 11 83 8
46 27 55 70 52 98 20 77 89 34
32 71 30 50 90 4 37 95 13 100
348179577