#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
void settings() __attribute__((constructor));
void eval(bool condition) { cout << (condition ? "yes" : "no") << '\n'; }
void Eval(bool condition) { cout << (condition ? "Yes" : "No") << '\n'; }
void EVAL(bool condition) { cout << (condition ? "YES" : "NO") << '\n'; }
int ipow(int a, int n) {
  if (n == 0) return 1;
  int x = ipow(a, n / 2);
  if (n % 2 == 0) return x * x;
  return x * x * a;
}
template <typename T>
ostream& operator<<(ostream& stream, const vector<T>& v) {
  for (auto elem : v) stream << elem << " ";
  return stream;
}
template <typename T>
istream& operator>>(istream& stream, vector<T>& v) {
  for (auto& elem : v) stream >> elem;
  return stream;
}
void settings() {
  ios::sync_with_stdio(0);
  cin.tie(0);
}
int main() {
  string s;
  cin >> s;
  bool words[26] = {1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1,
                    0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0};
  for (char c : s) {
    if (!words[(int)c - 65]) {
      cout << "NO" << '\n';
      return 0;
    }
  }
  string original = s;
  reverse((s).begin(), (s).end());
  EVAL(s == original);
  return 0;
}
