행렬 만들기

시간 제한2초메모리 제한128 MB

문제

0과 1로만 이루어진 n x n 행렬이 있다. 실제 행렬은 사라졌지만, 각 행과 각 열에 들어 있는 1의 개수는 알고 있다.

아래와 같은 행렬을 생각해 보자.

1100
1011
0100
0010

이 행렬에서는 1행에 1이 2개, 2행에 3개, 3행에 1개, 4행에 1개 있다. 또한 1열, 2열, 3열에는 각각 1이 2개씩 있고, 4열에는 1이 1개 있다.

행별 1의 개수와 열별 1의 개수가 주어질 때, 이 조건을 모두 만족하는 원래 행렬을 하나 만들어라.

입력

첫째 줄에 정수 n이 주어진다. (1 <= n <= 500)

둘째 줄에는 1행부터 n행까지 각 행에 들어 있는 1의 개수 n개가 차례로 주어진다.

셋째 줄에는 1열부터 n열까지 각 열에 들어 있는 1의 개수 n개가 차례로 주어진다.

각 행 또는 열에 들어 있는 1의 개수는 0 이상 n 이하의 정수이다.

출력

조건을 만족하는 행렬을 만들 수 있으면 첫째 줄에 1을 출력한다. 이어서 n개의 줄에 행렬의 각 행을 0과 1로 붙여서 출력한다.

조건을 만족하는 행렬이 없으면 첫째 줄에 -1을 출력한다.

가능한 행렬이 여러 개라면 그중 아무거나 하나를 출력해도 된다.