#include using namespace std; vector to_bin(int dec) { vector res; int r; while(dec / 2 != 0) { r = dec % 2; res.push_back(r); dec /= 2; } res.push_back(1); std::reverse(res.begin(), res.end()); return res; } vector to_int(string s) { vector res; res.push_back(0); for(int i = 0; i < s.length(); i++) { if(s[i] == 'X') { res.push_back(1); } else { res.push_back(0); } } res.push_back(0); return res; } int main() { int R, K; cin >> R >> K; string s; cin >> s; vector rule = to_bin(R); if(rule.size() < 8) { vector new_rule; for(int i = 0; i < 8-rule.size(); i++) { new_rule.push_back(0); } for(auto el : rule) { new_rule.push_back(el); } rule = new_rule; } map mapa; mapa["111"] = rule[0]; mapa["110"] = rule[1]; mapa["101"] = rule[2]; mapa["100"] = rule[3]; mapa["011"] = rule[4]; mapa["010"] = rule[5]; mapa["001"] = rule[6]; mapa["000"] = rule[7]; for(int i = 0; i < K; i++) { vector res; vector inp = to_int(s); string num; for(int j = 1; j < inp.size()-1; j++) { num = to_string(inp[j-1]) + to_string(inp[j]) + to_string(inp[j+1]); int b = mapa[num]; char c; if(b == 0) { c = '.'; } else { c = 'X'; } res.push_back(c); } for(auto sss : res) { cout << sss; } cout << endl; string rr = ""; for(auto sssss : res) { rr = rr + sssss; } s = rr; } return 0; }