loc2act = {
    (5,4):"D",
    (5,3):"LD",
    (4,3):"L",
    (3,3):"LT",
    (3,4):"T",
    (3,5):"TR",
    (4,5):"R",
    (5,5):"DR" 
}

act2dir = {
    "D":(1,0),
    "T":(-1,0),
    "L":(0, -1),
    "R":(0,1),
    "TR":(-1, 1),
    "DR":(1,1),
    "LT":(-1,-1),
    "LD":(1, -1)
}

act2loc = {v:k for k,v in loc2act.items()}

alph2act = {
    0:("LD", "D"),
    1:("L","D"),
    2:("LT","D"),
    3:("T","D"),
    4:("TR","D"),
    5:("R","D"),
    6:("DR", "D"),
    7:("L","LD"),
    8:("LT","LD"),
    9:("T","R"),
    10:("T","LD"),
    11:("TR","LD"),
    12:("LD","R"),
    13:("LD","DR"),
    14:("LT","L"),
    15:("L","T"),
    16:("L","TR"),
    17:("L","R"),
    18:("L","DR"),
    19:("LT","T"),
    20:("LT", "TR"),
    21:("T","DR"),
    22:("TR","R"),
    23:("TR","DR"),
    24:("LT","R"),
    25:("R","DR")
}

act2alph = {v:k for k,v in alph2act.items()} 

N, C = list(map(int, input().split()))
acts = [None] * N
for k in range(N):
    act1 = None
    act2 = None
    for i in range(9):
        line = input()
        if i > 2 and i < 6:
            for j in range(3):
               if line[j+3] == "#":
                    if act1 is None:
                        act1 = loc2act[(i, j+3)]
                    else:
                        act2 = loc2act[(i,j+3)]
    acts[k] = (act1, act2)

def myget(a):
    f = act2alph.get(a, None)
    return f if f is not None else act2alph.get(a[::-1], None)

word = [(myget(a) + C) % 26 for a in acts]
new_word_acts = [alph2act[c] for c in word]
for act in new_word_acts:
    act1, act2 = act
    a1_di, a1_dj = act2dir[act1]
    a2_di, a2_dj = act2dir[act2]
    a1_i, a1_j = act2loc[act1]
    a2_i, a2_j = act2loc[act2]
    hash_idx = {(a1_i + k*a1_di, a1_j + k * a1_dj) for k in range(3)} | {(a2_i + k*a2_di, a2_j + k * a2_dj) for k in range(3)}
    for i in range(9):
        line = ["."] * 9
        for j in range(9):
            if (i,j) in hash_idx:
                line[j] = "#"
            elif (i,j) == (4,4):
                line[j] = "*"
        print("".join(line))