def conv(inp):
    return '1' if inp == 'X' else '0'

def conv1(inp):
    return 'X' if inp == '1' else '.'


if __name__ == '__main__':
    ruleset = ['111','110','101','100','011','010','001','000']
    arr = input().strip().split()
    R = bin(int(arr[0]))[2:]
    if len(R) < 8:
        tmp = '0'* (8-len(R))
        tmp += R
        R = tmp
    gen = int(arr[1])
    seed = input().strip()
    for _ in range(gen):
        out = []
        for i in range(len(seed)):
            if i == 0:
                t = '0'
                t += conv(seed[i])
                t += conv(seed[i + 1])
                out.append(conv1(R[ruleset.index(t)]))

            elif i == len(seed) - 1:
                t = conv(seed[i-1])
                t += conv(seed[i])
                t += '0'
                out.append(conv1(R[ruleset.index(t)]))

            else:
                t = conv(seed[i - 1])
                t += conv(seed[i])
                t += conv(seed[i + 1])
                out.append(conv1(R[ruleset.index(t)]))
        seed = ''.join(out)
        print(seed)
