금고

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

문제

ByteGuy는 자물쇠가 달린 금고를 가지고 있습니다. 이 자물쇠에는 손잡이가 nn개 있고, 자물쇠 안에는 같은 개수인 빗장이 nn개 숨겨져 있습니다. 각 손잡이와 각 빗장은 00부터 p1p-1까지 번호가 붙은 pp가지 위치 중 하나에 놓일 수 있으며, pp는 소수입니다.

모든 빗장이 위치 00에 놓이는 순간 자물쇠가 열립니다.

ii번 손잡이를 한 칸 돌리면(위치 00에서 11로, 11에서 22로, ..., p1p-1에서 다시 00으로) jj번 빗장이 ci,jc_{i,j}칸만큼 돌아갑니다. 즉 jj번 빗장이 위치 ll에 있었다면 (l+ci,j)modp(l + c_{i,j}) \bmod p로 이동합니다.

ByteGuy는 여는 방법을 잊어버렸습니다. 3D 스캐너로 숨겨진 모든 빗장의 현재 위치를 읽을 수 있고, 이 자물쇠는 정확히 하나의 손잡이 배열에서만 열리도록 만들어져 있습니다.

손잡이의 현재 위치, 빗장의 현재 위치, 그리고 각 ci,jc_{i,j} 값이 주어질 때 자물쇠를 여는 손잡이 배열을 출력하세요.

입력

첫째 줄에 정수 두 개가 주어집니다. 손잡이의 개수 nn (1n3001 \le n \le 300)과 위치의 개수인 소수 pp (3p400003 \le p \le 40000)입니다.

둘째 줄에는 0p10 \ldots p-1 범위의 정수 nn개가 주어지며, 각 손잡이의 현재 위치입니다.

셋째 줄에는 0p10 \ldots p-1 범위의 정수 nn개가 주어지며, 각 빗장의 현재 위치입니다.

이어지는 nn개의 줄은 각 손잡이를 설명합니다. ii번째 줄에는 정수 nnci,0,ci,1,,ci,n1c_{i,0}, c_{i,1}, \ldots, c_{i,n-1}이 주어지며 0ci,j<p0 \le c_{i,j} < p입니다.

출력

0p10 \ldots p-1 범위의 정수 nn개를 공백 하나로 구분하여 한 줄에 출력합니다. 자물쇠를 여는 손잡이의 최종 위치입니다.