#include using namespace std; int main (){ size_t R, K; cin >> R >> K >> ws; vector v(8); size_t x = 128; size_t zbytek = R; for (size_t i = 7; i < SIZE_MAX; i--){ if (zbytek == 0){ v[i] = false; continue; } if (x <= zbytek){ zbytek -= x; x /= 2; v[i] = true; } else { x /= 2; v[i] = false; } } string anicka; getline(cin, anicka); anicka = '.' + anicka + '.'; for (size_t m = 0; m < K; m++) { string newgen; newgen.reserve(anicka.size() + 1000); for (size_t i = 0; i < anicka.size() - 2; i++) { size_t num = 0; size_t borec = 4; for (size_t j = i; j < i + 3; j++) { bool k = 0; if (anicka[j] == 'X') k = 1; num += k * borec; borec /= 2; } newgen += v[num] ? 'X' : '.'; } cout << newgen << endl; anicka = '.' + newgen + '.'; } }