import java.util.Scanner;

public class Wall {

    private static int GENERATION;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        GENERATION = scanner.nextInt();
        int iterations = scanner.nextInt();
        scanner.nextLine();

        String row = scanner.nextLine();
        StringBuilder builder = new StringBuilder(row);

        for (int i = 0; i < iterations; i++) {
            builder = transform(builder);
            System.out.println(builder);
        }
    }

    private static StringBuilder transform(StringBuilder builder) {
        String row = builder.toString();
        for (int i = 0; i < row.length(); i++) {
            int value = 0;
            value |= getBit(i - 1, row) << 2;
            value |= getBit(i, row) << 1;
            value |= getBit(i + 1, row);

            builder.setCharAt(i, (GENERATION & (1 << value)) != 0 ? 'X' : '.');
        }
        return builder;
    }

    private static int getBit(int index, String row) {
        if (index == -1 || index >= row.length()) {
            return 0;
        }
        return row.charAt(index) == 'X' ? 1 : 0;
    }

}
