시간 제한
메모리 제한
시간 제한
1초
메모리 제한
128 MB
0과 1로 채워진 삼각형 모양의 행렬을 생각하자. 크기가 N이면 1번째 행과 1번째 열은 각각 N개의 칸, 2번째 행과 2번째 열은 각각 N-1개의 칸, ..., N번째 행과 N번째 열은 각각 1개의 칸으로 이루어진다. 즉 i번째 행에는 a_i,1, a_i,2, ..., a_i,N-i+1이 있고, j번째 열에는 a_1,j, a_2,j, ..., a_N-j+1,j가 있다.
0과 1로 이루어진 문자열에서 1이 연속해서 나타나는 최대 구간들의 길이를 순서대로 적으면 하나의 순서열을 만들 수 있다. 예를 들어 문자열 (0 1 1 0 1 1 1)의 순서열은 (2 3)이다. 1이 하나도 없으면 빈 순서열이다.
모든 행과 모든 열에 대해 위와 같은 순서열이 주어진다. 이 조건을 만족하는 삼각형 행렬을 하나 재구성하는 프로그램을 작성하라.
조건을 만족하는 행렬이 여러 개라면 그중 하나만 출력한다. 조건을 만족하는 행렬이 없으면 No Answer를 출력한다.
첫째 줄에 행렬의 크기 N이 주어진다. (1 <= N <= 20)
이후 N개의 줄에는 1번째 행부터 N번째 행까지의 순서열 정보가 주어진다. 그다음 N개의 줄에는 1번째 열부터 N번째 열까지의 순서열 정보가 주어진다.
각 정보 줄은 다음 형식이다.
h x1 x2 ... xhh는 해당 행 또는 열의 순서열에 들어 있는 원소의 개수이다. x1, x2, ..., xh는 연속된 1 구간의 길이를 앞에서부터 순서대로 나타낸다. h가 0이면 그 줄에는 h만 주어진다.
조건을 만족하는 삼각형 행렬이 존재하면 행별로 출력한다. 1번째 행에는 N개의 값을, 2번째 행에는 N-1개의 값을, ..., N번째 행에는 1개의 값을 출력한다. 같은 행의 값은 공백으로 구분한다.
a1,1 a1,2 ... a1,n-1 a1,na2,1 a2,2 ... a2,n-2 a2,n-1...an-1,1 an-1,2an,1조건을 만족하는 행렬이 없으면 No Answer를 출력한다.
h x1 x2 ... xha1,1 a1,2 ... a1,n-1 a1,na2,1 a2,2 ... a2,n-2 a2,n-1...an-1,1 an-1,2an,1