def myprint(matrix): for i in range(9): print(" ".join(list(map(str,matrix[i])))) def find_zeros(matrix): result = [] for i in range(9): for j in range(9): if matrix[i][j] == 0: result.append([i,j]) return result def isend(matrix): for l in matrix: if 0 in l: return False return True def find_neighbors(matrix,i,j): result = [] result.append(matrix[i]) result.append([matrix[k][j] for k in range(9)]) result.append([matrix[k][l] for k in range((i//3)*3,(i//3)*3+3) \ for l in range((j//3)*3,(j//3)*3+3)]) return result def dfs(matrix, zeros): if not zeros: myprint(matrix) return -1 n, now = len(zeros), zeros[0] neibor = find_neighbors(matrix,now[0],now[1]) for i in range(1,10): if i not in neibor[0] and i not in neibor[1] and i not in neibor[2]: matrix[now[0]][now[1]] = i y = dfs(matrix, zeros[1:n]) if y == 0: matrix[now[0]][now[1]] = 0 continue return 0 matrix = [] for i in range(9): s = list(map(int,input().split())) matrix.append(s) dfs(matrix, find_zeros(matrix))