#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<ll> vll; #define fr(i,n) for (int i = 0; i<n;++i) bool getFrom(vector<bool> &gen, ll index){ if (index < 0) return false; if (index >= gen.size()) return false; return gen[index]; } bool makeNew(ll a, ll b, ll c, ll mask){ ll bitIndex = 4*a+2*b+c; ll bigNum = 1<<bitIndex; return (bigNum&mask) != 0; } void solve(){ ll r, k, ssize; string s; cin >> r >> k >> s; ssize = s.size(); vector<bool> lastGen; fr(i, ssize) lastGen.push_back(s[i]=='.'?false: true); fr(i, k){ vector<bool> newGen(ssize); for (ll j = 0; j < ssize; ++j) { bool a = getFrom(lastGen, j-1); bool b = getFrom(lastGen, j); bool c = getFrom(lastGen, j+1); newGen[j] = makeNew(a, b, c, r); cout << (newGen[j]?"X":"."); } cout << endl; lastGen = newGen; } } int main(){ solve(); return 0; }