#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
const int maxn = 1e6 + 10;
int T, len;
string s[118] = {
    "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", "HF", "TA", "W",  "RE",
    "OS", "IR", "PT", "AU", "HG", "TL", "PB", "BI", "PO", "AT", "RN", "FR",
    "RA", "RF", "DB", "SG", "BH", "HS", "MT", "DS", "RG", "CN", "NH", "FL",
    "MC", "LV", "TS", "OG", "LA", "CE", "PR", "ND", "PM", "SM", "EU", "GD",
    "TB", "DY", "HO", "ER", "TM", "YB", "LU", "AC", "TH", "PA", "U",  "NP",
    "PU", "AM", "CM", "BK", "CF", "ES", "FM", "MD", "NO", "LR"};
map<string, int> mp;
string ch;
int flag;
void dfs(int pos) {
  if (pos == len) flag = 1;
  if (flag) return;
  if (mp[ch.substr(pos, 1)]) dfs(pos + 1);
  if (pos + 1 < len && mp[ch.substr(pos, 2)]) dfs(pos + 2);
}
int main() {
  for (int i = 0; i < 118; i++) mp[s[i]] = 1;
  cin >> ch;
  flag = 0;
  len = ch.length();
  dfs(0);
  puts(flag ? "YES" : "NO");
  return 0;
}
