#include #include #include #include using namespace std; static unordered_map mapper{{"XXX", 7}, {"XX.", 6}, {"X.X", 5}, {"X..", 4}, {".XX", 3}, {".X.", 2}, {"..X", 1}, {"...", 0}}; int main() { int r, k; cin >> r >> k; vector rules(8); uint8_t mask = 1; for (int i = 0; i < 8; ++i) { rules[i] = ((r & mask)) ? 1 : 0; mask <<= 1; } string tmp; cin >> tmp; string cells = "."; cells += tmp + "."; for (int j = 0; j < k; ++j){ string itResult; for (int i = 0; i < cells.length() - 2; ++i) { string curr = cells.substr(i, 3); int cellFull = mapper[curr]; int newCell = rules[cellFull]; itResult += ((newCell) ? 'X' : '.'); } cells = '.' + itResult + '.'; cout << itResult << endl; } return 0; }