1 #include <iostream>
2 #include <stdlib.h>
3 #include <string>
4 #include <vector>
5 #include <algorithm>
6 #include <string.h>
7 #include <stack>
8 #include <unordered_map>
9 #include <math.h>
10 using namespace std;
11
12 string msgList[4] {"not a palindrome.","a regular palindrome.","a mirrored string.","a mirrored palindrome."};
13 string reverseList = {"A 3 HIL JM O 2TUVWXY51SE Z 8 "};
14 int main()
15 {
16 string input;
17 while(cin >> input)
18 {
19 int isPalindrome = 1,isMirrored = 1;
20 int lo,hi;
21 for(lo = 0,hi = input.size()-1; lo < hi; lo ++,hi --)
22 {
23 if(input[lo]!=input[hi])
24 {
25 isPalindrome = 0;
26 break;
27 }
28 }
29
30 for(lo = 0,hi = input.size()-1; lo <= hi; lo ++,hi --)
31 {
32 if(isalpha(input[lo]))
33 {
34 if(reverseList[input[lo]-'A'] != input[hi])
35 {
36 isMirrored = 0;
37 break;
38 }
39 }
40 else
41 {
42 if(reverseList[input[lo]-'0'+25] != input[hi])
43 {
44 isMirrored = 0;
45 break;
46 }
47 }
48 }
49 cout << input << " -- is " << msgList[isMirrored*2+isPalindrome] << endl << endl;
50 }
51 return 0;
52 }