3개의 행과 N개의 열로 이루어진 직사각형이 있습니다. 각 칸에 1부터 3N까지의 정수를 한 번씩 써넣어, 모든 행에서는 왼쪽에서 오른쪽으로, 모든 열에서는 위에서 아래로 숫자가 커지도록 만들려고 합니다. 이렇게 채우는 방법은 모두 몇 가지일까요?
일부 칸의 값은 이미 정해져 있을 수 있습니다. 가능한 방법의 수가 매우 커질 수 있으므로, 그 수를 1000007로 나눈 나머지를 출력하면 됩니다.
첫째 줄에 자연수 N (1≤N≤200)이 주어집니다.
이어지는 세 줄에는 직사각형의 각 행이 위에서부터 순서대로, 각 행 안에서는 왼쪽에서 오른쪽 순서로 주어집니다. 각 줄에는 N개의 정수 ai,j (0≤ai,j≤3N)가 있습니다. ai,j=0은 그 칸의 값이 아직 정해지지 않았음을 뜻하고, 그 외의 경우에는 그 칸의 값이 ai,j임을 뜻합니다.
조건을 만족하도록 채우는 방법의 수를 1000007로 나눈 나머지를 한 줄에 출력합니다.