def seq_to_num(seq):
    num_list = []
    for c in seq[::-1]:
        if c == '.':
            num_list.append(0)
        else:
            num_list.append(1)

    # print(num_list) 
    num = 0
    for i in range(len(num_list)):
        num += num_list[i] * (2**i)
    return num


if __name__ == "__main__":
    R, K = [int(c) for c in input().split(" ")]
    start_state = list(input())
    # print(R, K)
    # print(start_state)

    # 0. turn R into binary array
    bin_R = [int(c) for c in list(bin(R)[2:])][::-1]

    # 0.1 pad with zeros
    bin_R = [*bin_R, *[0 for _ in range(8-len(bin_R))]]
    # print(bin_R)
    # exit(0)

    for k in range(K):
        curr_state = start_state.copy()
        for i in range(0, len(start_state)):
            # 1. create current sequence
            if i > 0 and i < len(start_state)-1:
                curr_seq = start_state[i-1:i+2]
            elif i == 0:
                curr_seq = ['.', *start_state[0:2]]
            else:
                curr_seq = [*start_state[i-1:i+1], '.']
            
            # print("i: ", curr_seq)

            # 2. assign new value to i-th value
            num = seq_to_num(curr_seq)
            # print("num: ", num)
            res = '.' if bin_R[num] == 0 else 'X'
            curr_state[i] = res
            # break
        print(''.join(curr_state))
        start_state = curr_state