D = '''.........
.........
.........
.........
....*....
....#....
....#....
....#....
.........'''
DL = '''.........
.........
.........
.........
....*....
...#.....
..#......
.#.......
.........'''
L = '''.........
.........
.........
.........
.###*....
.........
.........
.........
.........'''
TL = '''.........
.#.......
..#......
...#.....
....*....
.........
.........
.........
.........'''

T = '''.........
....#....
....#....
....#....
....*....
.........
.........
.........
.........'''

TR = '''.........
.......#.
......#..
.....#...
....*....
.........
.........
.........
.........'''

R = '''.........
.........
.........
.........
....*###.
.........
.........
.........
.........'''

DR = '''.........
.........
.........
.........
....*....
.....#...
......#..
.......#.
.........'''


def mrg(a, b):
    res=[]
    for i in range(len(a)):
        if (a[i] == "*"): 
            res.append("*")
            continue
        res.append(a[i] if a[i] == "#" else b[i])
    return "".join(res)


d = {"A": mrg(D,DL),
 "B": mrg(D,L),
 "C": mrg(D, TL),
 "D": mrg(D, T),
 "E": mrg(D, TR),
 "F": mrg(D, R),
 "G": mrg(D, DR),
 "H": mrg(L, DL),
 "I": mrg(DL, TL),
 "J": mrg(T, R),
 "K": mrg(DL, T),
 "L": mrg(DL, TR),
 "M": mrg(DL, R),
 "N": mrg(DL, DR),
 "O": mrg(L, TL),
 "P": mrg(L, T),
 "Q": mrg(L, TR),
 "R": mrg(L, R),
 "S": mrg(L, DR),
 "T": mrg(TL, T),
 "U": mrg(TL, TR),
 "V": mrg(T, DR),
 "W": mrg(TR, R),
 "X": mrg(TR, DR),
 "Y": mrg(TL, R),
 "Z": mrg(DR, R)
   }
 
tr_d = {b:ord(a) for a, b in d.items()}

A = 65

t = list(map(int, input().split(" ")))

def r_c():
    res = []
    for i in range(9):
        res.append(input())
    return tr_d["\n".join(res)]

w = []
for _ in range(t[0]):
    w.append(r_c())

res = []
for l in w:
    res.append(chr((l+t[1]-A)%26 + A))

for l in res:
    print(d[l])



