만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

이진법 표

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

요약
n개의 행 값과 모서리 합 X가 주어질 때, 주어진 n+1개의 수에서 X를 찾고 0과 1로 이루어진 표를 복원합니다. 복원 결과가 유일하지 않으면 그 사실을 출력합니다.
난이도

보통10점 중 7점

유형
수학, 비트 연산, 구현
정답자
아직 제출이 없습니다

문제

키파는 율이로부터 0과 1로 가득한 nn by nn 표를 선물로 받았습니다. 키파는 이 선물이 너무 마음에 들어서, 각 행의 모든 수를 이진법 수로 보고 십진법으로 바꾼 값을 표의 행 오른쪽에 적었습니다. 같은 방법으로 각 열의 모든 수를 이진법 수로 보고 십진법으로 바꾼 값을 열 아래쪽에 적었고, 그 수들의 합을 오른쪽 아래에 적었습니다.

그런데 민티가 이 표를 가져가 버렸습니다. 민티는 맨 오른쪽 열의 (n+1)(n+1)개 수를 순서를 뒤섞어서 키파에게 알려준 다음, 키파의 소중한 표를 불태워 버렸습니다.

키파는 민티가 알려준 수 가운데 가장 오른쪽 아래에 적힌 수 XX가 무엇인지 알아냈습니다. 하지만 키파는 너무 슬퍼서 이 작업을 더 할 의지를 잃었습니다. 여러분이 이 일을 대신 해 줄 수 있나요?

입력

첫째 줄에 10310^3보다 작거나 같은 양의 정수 nn과 1032010^{320}보다 작은 양의 정수 XX가 주어집니다.

둘째 줄부터 nn개의 줄에 민티에게 들은 (n+1)(n+1)개의 수 중 XX를 제외한 nn개의 수가 주어집니다. 이 수는 양의 정수이고 서로 다르며, 모두 2n2n보다 작습니다.

모든 수는 십진법으로 주어집니다.

출력

주어진 정보로 표를 유일하게 만들 수 있으면 원래의 nn by nn 표를 공백 없이 출력합니다. 그렇지 않으면 kipa so sad :(를 출력합니다.

힌트

첫 번째 입력의 경우 다음과 같은 표를 만들 수 있으며, 이 표는 유일합니다.

1015
1004
1117
71513

예제2

  1. 예제 1

    입력
    3 13
    7
    4
    5
    
    예상 출력
    101
    100
    111
    
  2. 예제 2

    입력
    3 9
    7
    4
    5
    
    예상 출력
    kipa so sad :(