Idxs = tuple[int, int, int]
zeros = set[Idxs]()
boxs = dict[int, list[Idxs]]()
rows = list[list[str]]()
for r in range(9):
    row = []
    for c, v in enumerate(input().split()):
        b = r // 3 * 3 + c // 3
        idxs = (r, c, b)
        if v == "0":
            zeros.add(idxs)
        boxs.setdefault(b, []).append(idxs)
        row.append(v)
    rows.append(row)


def valid(p: Idxs):
    r, c, b = p
    v = rows[r][c]
    for x in range(9):
        if x != r and v == rows[x][c]:
            return False
        if x != c and v == rows[r][x]:
            return False
        br, bc, _ = boxs[b][x]
        if br != r and bc != c and v == rows[br][bc]:
            return False
    return True


def dfs():
    for p in zeros.copy():
        zeros.remove(p)
        for x in "123456789":
            rows[p[0]][p[1]] = x
            if valid(p) and dfs():
                return True
        rows[p[0]][p[1]] = "0"
        zeros.add(p)
        return False
    return True


if not dfs():
    print("no answer")
print("\n".join(" ".join(row) for row in rows))