#include <bits/stdc++.h>
using namespace std;
int flag = 0;
string v[] = {"H",  "HE", "LI", "BE", "B",  "C",  "N",  "O",  "F",  "NE", "NA",
              "MG", "AL", "SI", "P",  "S",  "CL", "AR", "K",  "CA", "SC", "TI",
              "V",  "CR", "MN", "FE", "CO", "NI", "CU", "ZN", "GA", "GE", "AS",
              "SE", "BR", "KR", "RB", "SR", "Y",  "ZR", "NB", "MO", "TC", "RU",
              "RH", "PD", "AG", "CD", "IN", "SN", "SB", "TE", "I",  "XE", "CS",
              "BA", "LA", "CE", "PR", "ND", "PM", "SM", "EU", "GD", "TB", "DY",
              "HO", "ER", "TM", "YB", "LU", "HF", "TA", "W",  "RE", "OS", "IR",
              "PT", "AU", "HG", "TL", "PB", "BI", "PO", "AT", "RN", "FR", "RA",
              "AC", "TH", "PA", "U",  "NP", "PU", "AM", "CM", "BK", "CF", "ES",
              "FM", "MD", "NO", "LR", "RF", "DB", "SG", "BH", "HS", "MT", "DS",
              "RG", "CN", "NH", "FL", "MC", "LV", "TS", "OG"};
void dfs(int len, string str) {
  if (flag) return;
  if (str == "") {
    cout << "YES" << endl;
    flag = 1;
    return;
  }
  for (int i = 0; i < 118; i++) {
    if (v[i].length() <= str.length()) {
      string strr = str.substr(0, v[i].length());
      if (strr == v[i]) {
        string strrr = str.substr(v[i].length(), str.length() - v[i].length());
        dfs(len, strrr);
      }
    }
  }
}
int main() {
  string str;
  cin >> str;
  dfs(0, str);
  if (!flag) cout << "NO" << endl;
  return 0;
}
