문제
마방진은 N행 N열로 이뤄진 행렬에서 각 행의 숫자들의 합과, 각 열의 숫자들의 합, 그리고 두개의 대각선의 합이 같은 행렬을 말한다. 또한, 1부터 N2 이하의 숫자가 정확히 한번씩 쓰여져야 한다.
올바르게 만들어지고 있던 마방진들의 빈 칸들이 주어질 때, 이를 올바르게 채워서 마방진이 되도록 하는 프로그램을 작성하라.
입력
입력의 첫 줄에는 1, 3, 4, 5중에 하나의 정수 N이 입력된다.
그 다음 N개의 줄에는 N개의 숫자로 이뤄진 행렬이 주어진다.
숫자 0이 들어올 경우 해당 칸에 숫자가 채워져 있지 않음을 뜻한다.
출력
입력에 대해 올바르게 채워진 마방진 행렬을 아래 출력 예시의 형식과 동일하게 올바른 마방진을 출력할 수 없는 경우는 입력으로 주어지지 않는다.
가능한 경우가 여럿 있을 경우 이중 하나만 출력한다.
예제
3
2 7 6
9 0 1
4 0 0
2 7 6
9 5 1
4 3 8