Matrix and Queries

아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

행렬식은 선형대수학에서 다루는 중요한 대상 중 하나이다.

  • 자연수 nn에 대하여, S_nS\_n은 1,2,n\\{1, 2, \cdots n\\}에서 1,2,n\\{1, 2, \cdots n\\}으로 가는 모든 전단사함수의 집합이다. 
  • σS_n\sigma \in S\_n에 대하여, inv(σ)\text{inv}(\sigma)1i<jn1 \le i < j \le nσ(i)>σ(j)\sigma(i) > \sigma(j)를 모두 만족하는 (i,j)(i, j)의 개수이다.
  • 이때, n×nn \times n 행렬 AA의 각 원소를 a_i,ja\_{i, j}라 하면, AA의 행렬식은 det(A)=_σS_n(1)inv(σ)_i=1na_i,σ(i)\text{det}(A) = \sum\_{\sigma \in S\_n} (-1)^{\text{inv} (\sigma) } \prod\_{i=1}^n a\_{i, \sigma(i)}이다.

각 원소가 정수인 N×NN \times N 행렬 AA가 있을 때, 다음 쿼리를 QQ개 처리해보자.

  • 정수 xx가 입력되면, AxIA - xI의 행렬식의 값을 출력한다. 단, IIN×NN \times N 단위행렬이다.

값이 지나치게 커질 수 있으므로, 998244353998244353으로 나눈 나머지를 출력하도록 한다.

입력

첫 줄에는 행렬의 크기 NN과 쿼리의 개수 QQ가 순서대로 주어진다. (1N5001 \le N \le 500, 1Q2500001 \le Q \le 250000)

두 번째 줄부터 N+1N+1번째 줄까지, 행렬 AA의 원소들이 순서대로 입력된다. 즉, 

a_1,1a\_{1,1} a_1,2a\_{1,2} \cdots a_1,na\_{1, n}

a_2,1a\_{2,1} a_2,2a\_{2,2} \cdots a_2,na\_{2,n}

\cdots \cdots \cdots \cdots

a_n,1a\_{n,1} a_n,2a\_{n,2} \cdots a_n,na\_{n,n}

과 같은 형식으로 행렬의 원소들이 주어진다. (0a_i,j<9982443530 \le a\_{i, j} < 998244353)

N+2N+2번째 줄에는 QQ개의 쿼리가 차례대로 주어진다. 쿼리로 주어지는 모든 정수는 00 이상 998244353998244353 미만이다.

출력

각 쿼리의 답을 순서대로 사이에 공백을 두고 한 줄에 출력한다.