def print_r(r):
    for i in range(1,len(r)-1):
        if r[i]:
            print("X", end="")
        else:
            print(".", end="")
    print("")

patterns =[7,6,5,4,3,2,1,0]
chosen =[]
internal_r =[]
updated_r =[]
R,K = tuple(map(int, input().split()))
b = bin(R)[2:]
b = b.zfill(8)
#print(b)
for i,val in enumerate(b):
    if int(val) == 1:
        chosen.append(patterns[i])
#print(chosen)
ROW = input()
ROW_L = len(ROW)
internal_r.append(0)
for i in ROW:
    internal_r.append( 1 if i=="X" else 0)
internal_r.append(0)
# print(internal_r)
#update cells from 1 to
for prd in range(K):
    s =["0",str(internal_r[0]), str(internal_r[1])]
    updated_r.append(0)
    for i in range(1,len(internal_r)-1):
        s.append(str(internal_r[i+1]))
        s.pop(0)
        num = int("".join(s),base=2)
        #print(num)
        if num in chosen:
            updated_r.append(1)
        else:
            updated_r.append(0)
    updated_r.append(0)
    print_r(updated_r)
    internal_r = updated_r.copy()
    updated_r.clear()

   