정수 행렬을 주어진 지수만큼 거듭제곱하는 프로그램을 작성하라. 단, 모든 곱셈과 덧셈은 법 $M$에 대한 모듈로 산술로 수행한다. 즉, 계산 과정에서 얻어지는 각 성분은 항상 $M$으로 나눈 나머지로 유지한다.
두 행렬을 곱할 때 결과 행렬의 각 성분은 대응하는 행과 열의 성분끼리 곱한 값들의 합을 법 $M$으로 나눈 나머지이다. 예컨대 법 $17$에서는
$$\begin{pmatrix} 1 & 2 \ 3 & 4 \end{pmatrix} \times \begin{pmatrix} 1 & 2 \ 3 & 4 \end{pmatrix} = \begin{pmatrix} (1\cdot1 + 2\cdot3) \bmod 17 & (1\cdot2 + 2\cdot4) \bmod 17 \ (3\cdot1 + 4\cdot3) \bmod 17 & (3\cdot2 + 4\cdot4) \bmod 17 \end{pmatrix} = \begin{pmatrix} 7 & 10 \ 15 & 5 \end{pmatrix}$$
이 되므로, 위 행렬을 법 $17$에서 $2$제곱하면 오른쪽의 결과 행렬을 얻는다.
입력은 여러 개의 데이터셋으로 이루어진다. 각 데이터셋의 첫 줄에는 공백 하나로 구분된 세 정수 $N$, $M$, $P$가 주어진다.
이어지는 $N$개의 줄에는 행렬의 각 행이 순서대로 주어지며, 각 줄에는 $N$개의 정수 $i$ ($0 \le i < M$)가 공백 하나로 구분되어 있다.
입력의 끝은 세 정수가 모두 $0$인 줄(0 0 0)로 표시되며, 이 줄은 처리하지 않는다.
각 데이터셋에 대해 거듭제곱한 결과 행렬의 $N$개 행을 출력한다. 각 행은 한 줄에 출력하며, 성분들은 공백 하나로 구분한다.
서로 다른 데이터셋의 출력 사이에는 빈 줄 하나를 넣어 구분한다. 마지막 데이터셋의 출력 뒤에는 빈 줄을 추가하지 않는다.