// // Created by cteam37 on 10/19/24. // #include #include #include using namespace std; int Caesar(int c, int move) { return (c+move)%26; } string Encode (int c) { switch (c) { case(0): { string str; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += "....*....\n"; str += "....#....\n"; str += "....#....\n"; str += "....#....\n"; str += ".........\n"; return str; } case(1): { string str; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += "....*....\n"; str += "...#.....\n"; str += "..#......\n"; str += ".#.......\n"; str += ".........\n"; return str; } case(2): { string str; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".###*....\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; return str; } case(3): { string str; str += ".........\n"; str += ".#.......\n"; str += "..#......\n"; str += "...#.....\n"; str += "....*....\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; return str; } case(4): { string str; str += ".........\n"; str += "....#....\n"; str += "....#....\n"; str += "....#....\n"; str += "....*....\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; return str; } case(5): { string str; str += ".........\n"; str += ".......#.\n"; str += "......#..\n"; str += ".....#...\n"; str += "....*....\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; return str; } case(6): { string str; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += "....*###.\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; return str; } case(7): { string str; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += ".........\n"; str += "....*....\n"; str += ".....#...\n"; str += "......#..\n"; str += ".......#.\n"; str += ".........\n"; return str; } } return "pepa"; } string Merge (int a, int b) { string string1 = Encode(a); string string2 = Encode(b); for (int i = 0; i < 90; ++i) { if(string2[i] == '#') { string1[i] = '#'; } } return string1; } map intToString {}; int Decode (string in) { for(auto x : intToString) { if(in == x.second) { return x.first; } } return -1; } void fillMap() { intToString.insert({0, Merge(0,1)}); intToString.insert({1, Merge(0,2)}); intToString.insert({2, Merge(0,3)}); intToString.insert({3, Merge(0,4)}); intToString.insert({4, Merge(0,5)}); intToString.insert({5, Merge(0,6)}); intToString.insert({6, Merge(0,7)}); intToString.insert({7, Merge(1,2)}); intToString.insert({8, Merge(1,3)}); intToString.insert({9, Merge(4,6)}); intToString.insert({10, Merge(4,1)}); intToString.insert({11, Merge(1,5)}); intToString.insert({12, Merge(1,6)}); intToString.insert({13, Merge(1,7)}); intToString.insert({14, Merge(2,3)}); intToString.insert({15, Merge(2,4)}); intToString.insert({16, Merge(2,5)}); intToString.insert({17, Merge(2,6)}); intToString.insert({18, Merge(2,7)}); intToString.insert({19, Merge(3,4)}); intToString.insert({20, Merge(3,5)}); intToString.insert({21, Merge(4,7)}); intToString.insert({22, Merge(5,6)}); intToString.insert({23, Merge(5,7)}); intToString.insert({24, Merge(3,6)}); intToString.insert({25, Merge(6,7)}); } int main() { fillMap(); int n,c; cin >> n; cin >> c; cin.get(); vector input; for (int nCount = 0; nCount < n; ++nCount) { string now; for (int i = 0; i < 9; ++i) { for (int j = 0; j < 10; ++j) { char c = cin.get(); now.push_back(c); } } input.push_back(now); } for(auto x : input) { cout << intToString.at(Caesar(Decode(x), c)); } return 0; }