디지털 덧셈
시간 제한2초메모리 제한256 MB
세 개의 7세그먼트 숫자 줄이 겹쳐 만들어진 흑백 그림이 주어질 때, 이를 만들어낸 덧셈 중 사전순으로 가장 작은 것을 복원한다.
문제
데이드라는 세로셈으로 덧셈을 한다. 음이 아닌 정수 두 개를 위아래로 쓰고, 왼쪽을 0으로 채워 두 수의 자리 수를 같게 맞춘 다음 그 아래에 합을 쓴다. 예를 들어 77과 05를 더하면 82를 쓴다. 올림 때문에 합이 두 덧수보다 길어지면, 96과 07처럼 두 덧수 앞에 0을 하나씩 붙여 096과 007로 쓰고 합은 103이 된다. 세 수의 자리 수가 모두 같기만 하면 필요 없는 0을 앞에 더 붙여도 된다. 007과 004를 더해 011을 쓰는 것도 허용한다.
데이드라는 직접 만든 인쇄기로 이 세로셈을 찍는다. 더하기 기호와 가로줄은 찍지 않고, 숫자는 모두 아래 7세그먼트 글꼴의 한 칸으로 찍는다.

그런데 인쇄기의 자리 간격이 잘못되어 숫자 칸이 모두 서로 겹쳐 찍혔다. 가로로 이웃한 두 숫자는 왼쪽 숫자의 오른쪽 두 세그먼트가 오른쪽 숫자의 왼쪽 두 세그먼트에 정확히 겹치도록 찍혔다. 세로로 이웃한 두 숫자는 위쪽 숫자의 아래 절반, 즉 세그먼트 네 개로 이루어진 정사각형이 아래쪽 숫자의 위 절반에 정확히 겹치도록 찍혔다.

어떤 자리에 검은 세그먼트가 하나라도 찍히면 그 자리는 검게 보인다. 그 자리에 닿는 숫자가 모두 그 세그먼트를 비워 두었으면 하얗게 보인다.
한 줄에 숫자가 개씩 세 줄이면 찍힌 그림은 격자가 된다. 가로 세그먼트 행은 5개이고 각 행에 세그먼트가 개, 세로 세그먼트 행은 4개이고 각 행에 세그먼트가 개 있다. 가로 행은 위에서부터 번부터 번까지, 세로 행은 위에서부터 번부터 번까지, 한 행 안의 세그먼트는 왼쪽에서부터 번부터 번호를 붙인다. 번째 줄의 번째 숫자는 다음 세그먼트를 쓴다. 여기서 은 첫 번째 덧수, 은 두 번째 덧수, 는 합이다.
- 가로 세그먼트 , , 를 위, 가운데, 아래 세그먼트로 쓴다.
- 세로 세그먼트 와 을 왼쪽 위, 오른쪽 위 세그먼트로 쓴다.
- 세로 세그먼트 와 을 왼쪽 아래, 오른쪽 아래 세그먼트로 쓴다.
찍힌 그림이 주어진다. 그렇게 찍히는 덧셈 하나를 복원하거나, 그런 덧셈이 없음을 판정하라.
입력
첫 줄에 정수 가 주어진다 (). 는 세 줄 각각의 자리 수이다.
다음 9줄은 찍힌 그림을 나타낸다. 번째 줄에는 가로 행 의 값 개가, 번째 줄에는 세로 행 의 값 개가 있다. 한 줄 안의 값은 공백 하나로 구분한다. 가로 행 5줄은 각 가로 세그먼트가 양옆 세로 세그먼트 사이에 오도록 맨 앞에 공백이 하나 더 있다. 값 1은 검은 세그먼트, 0은 하얀 세그먼트를 뜻한다.
출력
주어진 그림으로 찍히는 덧셈이 없으면 NO를 출력한다.
있으면 세 줄에 각각 정확히 자리를 출력한다. 첫 줄은 첫 번째 덧수, 둘째 줄은 두 번째 덧수, 셋째 줄은 두 수의 합이다. 같은 그림으로 찍히는 덧셈이 여러 개일 수 있다. 세 줄을 이어 붙인 문자열이 사전순으로 가장 작은 답을 출력한다. 세 줄의 길이가 모두 로 같으므로, 첫 줄을 가장 작게 만들고 그다음 둘째 줄을 가장 작게 만들면 된다. 셋째 줄은 두 수의 합이므로 그다음에는 저절로 정해진다.