import java.util.HashMap;
import java.util.Scanner;

public class Proglute {


    public static void main(String[] args) {
        Scanner vstup = new Scanner(System.in);

        HashMap<String, Integer> vzorec = new HashMap<>();
        vzorec.put("XXX", 0);
        vzorec.put("XX.", 1);
        vzorec.put("X.X", 2);
        vzorec.put("X..", 3);
        vzorec.put(".XX", 4);
        vzorec.put(".X.", 5);
        vzorec.put("..X", 6);
        vzorec.put("...", 7);

        int binarneCislo = Integer.parseInt(vstup.next());


        String pravidloTemp = Integer.toBinaryString(binarneCislo);

        String pravidlo = "";
        for (int i = 0; i < 8 - pravidloTemp.length(); i++) {
            pravidlo += "0";
        }
        pravidlo += pravidloTemp;


        int pocetRiadkov = Integer.parseInt(vstup.next());

        String prvyRiadok = "." + vstup.next() + ".";


        for (int j = 0; j < pocetRiadkov; j++) {
            char[] charArray = prvyRiadok.toCharArray();
            String novy = ".";
            for (int i = 1; i < charArray.length - 1; i++) {
                String trojcislie = "" + charArray[i - 1] + charArray[i] + charArray[i + 1];

                int indeXZapnutia = vzorec.get(trojcislie);



                if (pravidlo.charAt(indeXZapnutia) == '0') {
                    novy += ".";
                } else {
                    novy += "X";
                }
            }
            novy += ".";

            char[] array = novy.toCharArray();
            for (int i = 1; i < array.length - 1; i++) {
                char c = array[i];
                System.out.print(c);
            }
            System.out.println();
            prvyRiadok = novy;
        }

    }


}
//
//
// XXXXXXXXXXXXX
// ...........X...........