table = {
    "down": [ (5,4), (6,4), (7,4) ],
    "left/down": [(5,3), (6,2), (7,1)],
    "left": [(4,1), (4,2), (4,3)],
    "left/top": [(3,3),(2,2),(1,1)],
    "top": [(3,4),(2,4),(1,4)],
    "top/right": [(3,5),(2,6),(1,7)],
    "right": [(4,5),(4,6),(4,7)],
    "down/right": [(5,5),(6,6),(7,7)],
}

dictt = {
    "A": ["left/down", "down"],
    "B": ["left", "down"],
    "C": ["left/top", "down"],
    "D": ["top", "down"],
    "E": ["top/right", "down"],
    "F": ["right", "down"],
    "G": ["down/right", "down"],
    "H": ["left/down", "left"],
    "I": ["left/down", "left/top"],
    "J": ["top", "right"],
    "K": ["left/down", "top"],
    "L": ["left/down", "top/right"],
    "M": ["left/down", "right"],
    "N": ["left/down", "down/right"],
    "O": ["left", "left/top"],
    "P": ["left", "top"],
    "Q": ["left", "top/right"],
    "R": ["left", "right"],
    "S": ["left", "down/right"],
    "T": ["left/top", "top"],
    "U": ["left/top", "top/right"],
    "V": ["top", "down/right"],
    "W": ["top/right", "right"],
    "X": ["top/right", "down/right"],
    "Y": ["left/top", "right"],
    "Z": ["right", "down/right"],
}

letters = []

for let, val in dictt.items():
    temp = [["."]*9 for _ in range(9)]
    temp[4][4] = "*"
    for direction in val:
        for (x,y) in table[direction]:
            temp[x][y] = "#"
    letters.append(temp)

N, C = [int(i) for i in input().split()]
ans = []
for i in range(N):
    temp=[]
    for j in range(9):
        temp2 = []
        for n in input():
            temp2.append(n)
        temp.append(temp2)
    ans.append(letters.index(temp))

for i,v in enumerate(ans):
    v = (v+C) % 26
    for j,row in enumerate(letters[v]):
        for el in row:
            print(el, end="")
        if not (i==len(ans)-1 and j == len(letters[v]) - 1):
            print()
