#include <stdio.h>
#include <string.h>
#define BUFF_SIZE 10


char * readline()
{
  char *line = NULL;
  int i = 0;
  int length = 0;
  char c = 0;


  line = new char [BUFF_SIZE];

  while(!feof(stdin)){
    c = fgetc(stdin);
    if(c == '\n') break;
    if(i == length-1){
      char *tmp = new char[length+BUFF_SIZE];
      length += BUFF_SIZE;
      memcpy(tmp, line, length);
      line = tmp;
    }
    line[i] = c;
    i++;
  };

  if(feof(stdin)) line[i-1] = 0;
  else
  line[i] = 0;

  return line;
}

bool test_palindrome(char *line)
{
  unsigned int i=0;
  int line_len = strlen(line);
  for(i=0;i<strlen(line);i++){
    if(line[i] != line[line_len-i-1]) return false;
  }
  return true;
}

char * reverse(char *line)
{
  char *line_tmp = new char [strlen(line)+1];
  memset(line_tmp, 0, strlen(line)+1);
  unsigned int i;
  for(i=0;i<strlen(line);i++){
    switch(line[i]){
    case 'A':
    case 'H':
    case 'I':
    case 'M':
    case 'O':
    case 'T':
    case 'U':
    case 'V':
    case 'W':
    case 'X':
    case 'Y':
    case '1':
    case '8':
      line_tmp[i] = line[i];
      break;
    case 'E': line_tmp[i] = '3';
	break;
    case 'J': line_tmp[i] = 'L';
      break;
    case 'L': line_tmp[i] = 'J';
      break;
    case 'S': line_tmp[i] = '2';
      break; 
    case 'Z': line_tmp[i] = '5';
      break;
    case '2': line_tmp[i] = 'S';
      break;
    case '3': line_tmp[i] = 'E';
      break;
    case '5': line_tmp[i] = 'Z';
      break;
    default: 
      //printf("%c", line[i]);
      return NULL;
      break;
    }
  }

  int tmp = strlen(line);
  //printf("strlen(line)=%d\n",strlen(line));
  //printf("strlen(line_tmp)=%d\n",strlen(line_tmp));
  // printf("%s=%s", line, line_tmp);
  for(i=0;i<strlen(line);i++){
    //printf("%c=%c", line[i], line_tmp[tmp-i-1]);
    if(line_tmp[i] != line_tmp[tmp-i-1]) return NULL;
  }
  return line_tmp;
}


int main(int argc, char *argv[])
{
  char *line, *tmp = NULL;
  unsigned int line_len;
  unsigned int i;
  bool is_palindrome=false, is_mirrored_string=false, is_mirrored_palindrome=false;

  int flags = 0;


  while(!feof(stdin)){
    is_palindrome=false;
    is_mirrored_string=false;
    is_mirrored_palindrome=false;
    line = NULL;
    line = readline();
    //printf("%s\n", reverse(line));
    printf("%s", line);
    if(test_palindrome(line)==true) is_palindrome = true;
    if(reverse(line) != NULL) is_mirrored_string = true;
    

    if(is_palindrome==false && is_mirrored_string==false)
       printf(" -- is not a plaindrome.\n");

    else if(is_palindrome && !is_mirrored_string)
      printf(" -- is a regular palindrome.\n");

    else if(!is_palindrome && is_mirrored_string)
      printf(" -- is mirrored string.\n");

    else if(is_palindrome && is_mirrored_string)
      printf(" -- is mirrored palindrome.\n");

    if(feof(stdin)) {
      return 0;
    }
  }

  return 0;
}