c_to_pos = {
    "a" : (5, 6),
    "b" : (3, 6),
    "c" : (0, 6),
    "d" : (1, 6),
    "e" : (2, 6),
    "f" : (4, 6),
    "g" : (6, 7),
    "h" : (3, 5),
    "i" : (0, 5),
    "j" : (1, 4),
    "k" : (1, 5),
    "l" : (2, 5),
    "m" : (4, 5),
    "n" : (5, 7),
    "o" : (0, 3),
    "p" : (1, 3),
    "q" : (2, 3),
    "r" : (3, 4),
    "s" : (3, 7),
    "t" : (0, 1),
    "u" : (0, 2),
    "v" : (1, 7),
    "w" : (2, 4),
    "x" : (2, 7),
    "y" : (0, 4),
    "z" : (4, 7),
}

pos_to_c = {v: k for k, v in c_to_pos.items()}

poses = [
    (1, 1),
    (1, 4),
    (1, 7),
    (4, 1),
    (4, 7),
    (7, 1),
    (7, 4),
    (7, 7),
]

pose_to_d = [
    (-1, -1),
    (-1, 0),
    (-1, 1),
    (0, -1),
    (0, 1),
    (1, -1),
    (1, 0),
    (1, 1)
]

def from_stupid_to_normal_alphabet(stupid_letter):
    l = []
    for i, (r, c) in enumerate(poses):
        if stupid_letter[r][c] == "#":
            l.append(i)
    return pos_to_c[tuple(l)]

def normal_alphabet_to_from_stupid(c):
    ps = c_to_pos[c]
    out = [["."] * 9 for _ in range(9)]
    out[4][4] = "*"
    for p in ps:
        dr, dc = pose_to_d[p]
        for i in range(1, 4):
            out[4 + dr*i][4+dc*i] = "#"
    return list(map(lambda x: "".join(x), out))


def load_char():
    return [input() for _ in range(9)]


def caesar(letter, C):
    p = ord(letter) - ord("a")
    return chr((p + C + 26) % 26 + ord("a"))
    


###################################################

N, C = map(int,input().split())


for _ in range(N):
    cin = from_stupid_to_normal_alphabet(load_char())
    c_dec = caesar(cin, C)
    res = normal_alphabet_to_from_stupid(c_dec)
    print(*res, sep="\n")
