/*  //Let's code the things for not getting ✔ , it's all about ❤ (Author : sarvesh raut) //*/
#include<bits/stdc++.h>
using namespace std;
#define gc getchar_unlocked
#define fo(i,a,n) for(int i=a;i<n;i++)
#define Fo(i,k,n) for(i=k;k<n?i<n:i>n;k<n?i+=1:i-=1)
#define ll long long int
#define input(a) fo(i , 0 , n)cin>>a[i];
#define pb push_back
#define mp make_pair
#define deb(x) cout << #x << "=" << x << endl
#define deb2(x, y) cout << #x << "=" << x << "," << #y << "=" << y << endl
#define all(x) x.begin(), x.end()
#define clr(x) memset(x, 0, sizeof(x))
#define sortall(x) sort(all(x))
#define PI 3.1415926535897932384626
typedef pair<ll, ll>	pii;
typedef vector<ll>		vi;
typedef vector<pii>		vpii;
typedef vector<vi>		vvi;
const ll maxn = 1e5+6 ;
const ll MOD = 1e9 + 7  ;
 vector<int> prim(1000005 , 1) ;
 int fact[maxn] ;

ll binomialCoeff(ll n, ll k){ll res = 1; if (k > n - k) k = n - k;for (ll i = 0; i < k; ++i) { res *= (n - i); res /= (i + 1);}return res;}
 /*
int getmid(int l , int r){return (l+(r-l)/2) ;}
 struct segtree{
     int siz ;
     vi sums ;
    void init(int n){
       siz = 1 ;
       while(siz<n)siz*=2;
       sums.assign(2*siz , 0LL) ;
     }
     void set(int i , int v ,int cur , int l , int r){
         if(r-l==1){
           sums[cur] = v ;  return ;
         }
         int m = getmid(l , r) ;
         if(i < m){
            set(i , v , 2*cur+1 , l , m) ;
         }else set(i , v , 2*cur+2 , m , r) ;
         sums[cur] = sums[2*cur+1] + sums[2*cur+2] ;
      }
     void set(int i , int v){
        set(i , v ,0 , 0 , siz) ;
      }
      ll sum(int l , int r , int cur , int lx , int rx){
         if(lx>=r || l>=rx)return 0;
         if(lx>=l && rx<=r)return sums[cur] ;
         int mid  = getmid(lx , rx) ;
         ll s1 = sum(l , r , 2*cur+1 , lx , mid) ,s2 = sum(l , r , 2*cur+2 , mid , rx)  ;
         return s1 + s2 ;
       }
     ll sum(int l , int r){
         return sum(l , r , 0 ,  0 , siz) ;
       }
  };*/
 bool isVowel(char ch) {
    if(ch == 'a' || ch == 'i' || ch == 'e' || ch == 'u' || ch == 'o'){
        return true;
    }return false;
}
ll power(ll x, ll i,ll mod)
{
	ll ans = 1;
	while(i > 0)
	{
		if(i&1)
			ans = (ans*x)%mod;
		i >>=1;
		x = (x*x)%mod;
	}
	return ans;
}

ll modInverse(ll x, ll mod)
{
	return power(x , mod-2,mod);
}
int nCr (int n , int r) {
    if(n < r) {
        return 0;
    }
    return ( ( ( fact[n] * modInverse(fact[n-r], MOD) ) % MOD ) * modInverse(fact[r],MOD) ) % MOD;
}
ll power(int x, unsigned int y)
{
    ll temp;
    if( y == 0)
        return 1;
    temp = power(x, y/2);
    if (y%2 == 0)
        return temp*temp;
    else
        return x*temp*temp;
}

void erath(int n) {

    prim[1] = 0 ;
    prim[0] = 0 ;prim[2] = 1 ;
    for(int i=2 ; i*i<=n ; i++){
        if(prim[i]){
        for(int j=i*i ; j <=n ; j+=i){
            prim[j] = 0 ;
         }
        }
    }
  }
 ll gcd( ll a, ll b)
{
  if (b == 0)
    return a;
  return gcd(b, a % b);
}

// Function to return LCM of two numbers
ll lcm(ll a, ll b)
{
    return (a / gcd(a, b)) * b;
}
bool sortbysec(const pair<int,int> &a,
              const pair<int,int> &b)
{                                                //functions hleps to sort vector of pair by second element ...pass it as third argu to sort function
    return (a.second < b.second);
}

ll n , m , k ;
int getmid(int l , int r){return (l+(r-l)/2) ;}
 struct segtree{
     int siz ;
     vpii sums ;
    void init(int n){
       siz = 1 ;
       while(siz<n)siz*=2;
       sums.assign(2*siz , {LONG_MAX , 0}) ;
     }
     void set(int i , int v ,int cur , int l , int r){
         if(r-l==1){
           sums[cur].first = v ;
           sums[cur].second = 1 ;
             return ;
         }
         int m = getmid(l , r) ;
         if(i < m){
            set(i , v , 2*cur+1 , l , m) ;
         }else set(i , v , 2*cur+2 , m , r) ;
         sums[cur].first = min(sums[2*cur+1].first  , sums[2*cur+2].first) ;
         if(sums[2*cur+1].first==sums[cur].first && sums[2*cur+2].first==sums[cur].first){
            sums[cur].second = sums[cur*2+1].second + sums[cur*2+2].second ;
         }else if(sums[2*cur+1].first==sums[cur].first){
            sums[cur].second = sums[cur*2+1].second;
         }else  {
           sums[cur].second = sums[cur*2+2].second;
          }
      }
     void set(int i , int v){
        set(i , v ,0 , 0 , siz) ;
      }
      pii sum(int l , int r , int cur , int lx , int rx){
         if(lx>=r || l>=rx)return {LONG_MAX , 0};
         if(lx>=l && rx<=r)return {sums[cur].first , sums[cur].second} ;
         int mid  = getmid(lx , rx) ;
         pii s1 = sum(l , r , 2*cur+1 , lx , mid) ,s2 = sum(l , r , 2*cur+2 , mid , rx)  ;
         if(s1.first < s2.first){
            return s1 ;
         }else if(s1.first > s2.first)return s2 ;
         else return {s1.first , s1.second+s2.second} ;
       }
     pii sum(int l , int r){
         return sum(l , r , 0 ,  0 , siz) ;
       }
  };
int nCrModp(int n, int r, int p)
{
    if (r > n - r)
        r = n - r;
    int C[r + 1];
    memset(C, 0, sizeof(C));

    C[0] = 1; // Top row of Pascal Triangle
    for (int i = 1; i <= n; i++) {
        for (int j = min(i, r); j > 0; j--)
            C[j] = (C[j] + C[j - 1]) % p;
    }
    return C[r];
}

void ans(int top){
    string s  ;
    cin>>s;
    int cal = 0 ;
   // for(auto it : s)cal+=(it-'A');
    //deb("");
    cout<<"YES"<<endl;
}
int main() {
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

   int t = 1 , co = 1;
   // cin>>t;
    while(t--) {
        ans(co);co++;
    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef long long int ll;
typedef vector<long long int> vi;
typedef vector<vi> vii;
typedef pair<ll, ll> ii;
typedef vector<ii> vpii;

#define sz(a) ll((a).size())
#define pb push_back
#define mp make_pair
#define all(C) C.begin(),C.end()
#define fai(i,n) for(ll i=0; i<n; i++)
#define rep(i,a,b) for(ll i=a; i<=b; i++)
#define repl(i,a,b) for(ll i=a; i<=b; i++)
#define fal(i,n) for(ll i=0; i<n; i++)
#define tr(container, it) for(typeof(container.begin()) it = container.begin(); it != container.end(); it++)
// *it or it->second.first

ll getSum(ll n)
 {
    ll sum;

    for (sum = 0; n > 0; sum += n % 10, n /= 10);

    return sum;
 }

void yes(){
    cout<<"YES"<<endl;
}

void no(){
    cout<<"NO"<<endl;
}

//----------------- check if prime or not ------------------//

bool isPrime(ll n)
{

    if (n <= 1)
        return false;
    if (n <= 3)
        return true;

    if (n % 2 == 0 || n % 3 == 0)
        return false;

    for (ll i = 5; i * i <= n; i = i + 6)
        if (n % i == 0 || n % (i + 2) == 0)
            return false;

    return true;
}

//------------------ Sieve Of Eratosthenes-----------------------//
// use: vector<ll> v= SieveOfEratosthenes(num) //

vector<ll> SieveOfEratosthenes(ll n)
{
    vector<ll> primes;
    bool prime[n + 1];
    memset(prime, true, sizeof(prime));

    for (ll p = 2; p * p <= n; p++)
    {
        if (prime[p] == true)
        {
            for (ll i = p * p; i <= n; i += p)
                prime[i] = false;
        }
    }
    for (ll p = 2; p <= n; p++)
        if (prime[p])
            primes.pb(p);

    return primes;
}

//-------------gcd -------------------//

ll gcd(ll a, ll b)
{
    if (a == 0)
        return b;
    return gcd(b % a, a);
}

// ------------- lcm -----------------//

ll lcm(ll a, ll b){
  ll G = gcd(a,b);
  ll k = (a*b)/G;
  return k;
}

//-----  first term ascending , if same then compare second -------------//

bool cmp(pair<ll,ll> &a, pair<ll,ll> &b){
      return a.second>b.second;

}

//-------------------main--------------------------//

int main()
{

  //freopen("input.txt", "r", stdin);
  //freopen("output.txt", "w", stdout);

  ios::sync_with_stdio(0);
  cin.tie(0);

  string a;
  cin>>a;
  yes();

  return 0;

}


#include<bits/stdc++.h>
using namespace std;

#define ll long long

void init_code()
{
  #ifndef ONLINE_JUDGE

freopen("input.txt", "r", stdin);

freopen("output.txt", "w", stdout);

#endif // ONLINE_JUDGE
}

char arr[5][5];

void func(int x,int y,int &ans,int &temp,int n,int m)
{
  if(x>=n || y>=m)
    return;

  if(arr[x][y]=='*')
    temp++;

  if(x==n-1 && y==m-1)
  {
    ans=max(ans,temp);
  }

  func(x,y+1,ans,temp,n,m);
  func(x+1,y,ans,temp,n,m);

  if(arr[x][y]=='*')
    temp--;

}

int main()
{
     ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
     init_code();

//    int t=1;

//    while(t--)
//    {

// int n;
// cin>>n;
// cout<<sqrt(n);

//    }
    // int n,m;
    // cin>>n>>m;
    // for(int i=0;i<n;i++)
    //   for(int j=0;j<m;j++)
    //     cin>>arr[i][j];
    //   int ans=0;
    //   int temp=0;
    //   func(0,0,ans,temp,n,m);
    //   if(ans==min(n,m))
    //   cout<<ans;
    // else
    //   cout<<min(n,m)-ans;
     string s;
     cin>>s;
     bool f=1;
     for(int i=2;i<s.length();i++)
     {
      int n=s[i-2]-'A'+1+s[i-1]-'A'+1;
      n%=26;
      if(n<=s[i]-'A'+1)
      {
        f=0;
        break;
      }
     }

     if(f==1)
      cout<<"YES";
    else
      cout<<"NO";

}


#include<bits/stdc++.h>
using namespace std;
int a[100];
int main()
{
    ios::sync_with_stdio(false);
    string s;
    cin>>s;
    int i;
    int sum=s[0]-'A';
    for(i=1;i<s.size()-1;i++){
        int hjj=s[i]-'A';
        int l=s[i+1]-'A';
        sum+=hjj;
        sum%=26;
        if(sum!=l){
            printf("NO\n");
            break;
        }
    }
    if(i>=s.size()-1)
        printf("YES\n");
}


#include <bits/stdc++.h>
#define fast() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define int long long
#define mod 1000000007
using namespace std;
#define endl '\n'

void Display(int num)
{
    cout<<num<<endl;
}

void Input(int n,vector<int>&res)
{
    for(int i=0;i<n;i++)
    {
        cin>>res[i];
    }
}
void solve()
{
    string str;
    cin>>str;
    if(str.length()<=2)
    {
        cout<<"NO"<<endl;
        return;
    }
    int a=str[0]-'A';
    int b=str[1]-'A';
    int c;
    int flag=0;
    // cout<<a<<" "<<b<<" ";
    for(int i=2;i<str.length();i++)
    {
        int num=str[i]-'A';
        // cout<<num<<" ";
        if(num!=a+b)
        {
            flag=1;
            break;
        }
        a=b;
        b=num;
    }
    if(flag){
        cout<<"NO"<<endl;
    }
    else
    {
        cout<<"YES"<<endl;
    }
}

int32_t main()
{
#ifndef ONLINE_JUDGE
    freopen("inputf.in", "r", stdin);
    freopen("outputf.out", "w", stdout);
#endif
    solve();
    return 0;

}


#include<bits/stdc++.h>
#define g 1000006
#define ll long long int
using namespace std;
ll n,t,k,a,b,c[g],d,e;
string s;
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	cin >> s;
	a = int('A');
	for(ll i = 0; i < s.size(); i++){
		c[i] = int(s[i]) - a;
		cout << c[i] << " ";
	}
	cout << '\n';
	for(ll i = 2; i < s.size(); i++){
		d = c[i - 1] + c[i - 2];
		if(d % 26 == c[i]) return cout << "YES", 0;
	}
	cout << "NO";
}


    #include<bits/stdc++.h>
#include<chrono>
using namespace std;

typedef long long  ll;
typedef long double ld;

#define fastio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define vi vector<int>
#define vll vector<ll>
#define vd vector<ld>
#define vs vector<string>
#define vb vector<bool>
#define db double
#define pb push_back
#define popb pop_back
#define ump unordered_map
#define sz(x) x.size()
#define all(x) x.begin(),x.end()
#define yes cout<<"YES"<<"\n";return;
#define no cout<<"NO"<<"\n";return;
#define lp(i,a,b) for(ll i = a ; i<b ; i++)
#define lpp(i,a,b) for(ll i = a ; i >= b ; i--)
#define f(x , arr) for(auto x : arr)
#define mod 1e9 + 7
#define INF 1e18
#define cV(a,x) vector<ll> a(x); lp(i,0,x){cin>>a[i];}

void __print(int x) {cerr << x;}
void __print(long x) {cerr << x;}
void __print(ll x) {cerr << x;}
void __print(unsigned x) {cerr << x;}
void __print(unsigned long x) {cerr << x;}
void __print(unsigned long long x) {cerr << x;}
void __print(db x) {cerr << x;}
void __print(ld x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const char *x) {cerr << '\"' << x << '\"';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}

template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);}

#ifndef ONLINE_JUDGE
#define debug(x...) cerr << "[" << #x << "] = ["; _print(x);
#else
#define debug(x...)
#endif

void solve()
{
    string s;
    cin>>s;
    vector<ll> a(s.size());
    map<char,ll> m;
    ll sum = 0;
    ll odd = 0,even = 0;
    lp(i,0,s.size()-2){
        a[i] = s[i] - 'A';
        sum =s[i] - 'A' +s[i+1] - 'A';
        debug(sum);
        if(s[i+2]- 'A' != sum%26){
            cout<<"NO"<<endl;
            return;
        }
    }

    cout<<"YES"<<endl;
    return ;
}

int main()
{

#ifndef ONLINE_JUDGE
    freopen("Error.txt", "w", stderr);
#endif

    chrono::time_point<chrono::system_clock> start, end;
    start = std::chrono::system_clock::now();

    fastio()
    int tt = 1;
    cin>>tt;

    while(tt--){
        solve();
    }

    end = std::chrono::system_clock::now();
    chrono::duration<double> elapsed_seconds = end - start;
    cerr<< "Time: " << elapsed_seconds.count() << "s\n";
}

// logn(x) + 1 number of digits in that representation
//  n & (n-1) power of 2
// _builtin_popcount(x) : set bits in a number(int) only (use ll)
// __builtin_clz(x) Leading zeores (crashes for zero)
// __builtin_ctz(x) trailing zeroes


#include <bits/stdc++.h>

using namespace std;
int main()
{
    string s;
    cin>>s;int i,k=0;
    if(s.length()<=2)
    cout<<"YES";
    else
    {
        for(i=2;i<s.length();i++)
        {
            if(s[i]-65!=(s[i-1]-65+s[i-2]-65))
            k=1;
        }
        if(k==1)
        cout<<"NO";
        else
        cout<<"YES";

    }
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    string s,ans="YES\n";
    cin>>s;
    if(s.lenght()<3){
        ans="NO\n";
    }
    else{
        int n=s.length();
        for(int i=2; i<n; i++){
            if(s[i]!=((s[i-1]-64)+(s[i-2]-64))%26-1){
                ans="NO\n";
                break;
            }
        }
    }
    cout<<ans;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
  string s;
  cin>>s;
  int m,n,o;
  for(int i=0;i<s.length();i++){
     m=(int)(s[i]-'A');
     n=(int)(s[i-1]-'A');
     o=(int)(s[i-2]-'A');
     if((o+n)%26!=m) cout<<"NO\n";
     return 0;

  }
  cout<<"YES\n";
}


#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
typedef tree<long long, null_type, less_equal<long long>,rb_tree_tag,tree_order_statistics_node_update>ordered_set;
#define ll long long
#define yes cout<<"Yes"<<"\n";
#define ye  cout<<"YES"<<"\n";
#define noo cout<<"No"<<"\n";
#define no  cout<<"NO"<<"\n";
int main()
{
    /*ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);*/
    ll t;cin>>t;
    while(t--)
    {
        string s;
        cin>>s;
        ll n=s.size();
        ll a[n],v=0;
        if(s.size()<=2)
        {
            ye
        }
        else
        {
            for(ll i=0;i<s.size();i++)
            {
                a[i]=s[i]-'A';
                if(i>=2&&(a[i]!=a[i-1]+a[i-2])&&(a[i-1]+a[i-2])%26!=a[i])
                {
                    no
                    v=1;
                    break;
                }
            }
            if(!v)ye
        }
    }
}


/**
author:  Bijoy Singh Rajput
 " Nam Tho Sunahi Hoga "
**/
#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    //cin.tie(0);
    string s;
    cin>>s;
    int arr[11];
    for(int i=0; i<(s.size()); i++)
    {
        arr[i]=s[i]-65;
    }
    int k=0;
    for(int i=0; i<(s.size()); i++)
    {
        if((arr[i]+arr[i+1])%26!=arr[i+2])
        {
            k=1;
            cout<<"NO";
            return 0;
        }

    }
    cout<<"YES";
}


#include<bits/stdc++.h>
using  namespace  std;
typedef long long ll;
const int mod=1e9+7;
const int N=1e5+5;
int r[N];
void solve(){
    string s;
    cin>>s;
    cout<<"YES";
}
int main(){
    int t;
    t=1;
//    cin>>t;
    while(t--){
        solve();
    }
}


#include <bits/tsdc++.h>

using namespace std;

signed main() {
    string s;
    cin >> s;
    int n = s.size();
    for (int i = 3; i < n; i ++) {
        if ((s[i-2] ^ 48) + (s[i-1] ^ 48) != (s[i] ^ 48)) {
            puts("NO");
            return 0;
        }
    }
    puts("YES");
    return 0;
}


#include <bits/stdc++.h>

using namespace std;

signed main() {
    string s;
    cin >> s;
    int n = s.size();
    for (int i = 3; i < n; i ++) {
        if (((s[i-2] - 65) + (s[i-1] - 65)) % 26 != (s[i] - 65)) {
            puts("NO");
            return 0;
        }
    }
    puts("YES");
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
int fib[114514];
int main() {
	char ch;
	int cnt = 0;
	while (cin >> ch) {
		int y = ch - 65;
		fib[++cnt] = y;
	}
	for (int i = 3; i <= cnt; i++) {
		if (fib[i] != fib[i - 1] + fib[i - 2]) {
			cout << "NO" << endl; return 0;
		}
	}
	cout << "YES";
}


// BY : VIDIT BHARDWAJ
#include<bits/stdc++.h>
using namespace std;

#define ff                  first
#define ss                  second
#define pb                  push_back
#define popb                pop_back
#define lb                  lower_bound
#define ub                  upper_bound
#define all(v)              (v).begin(),(v).end()
#define int                 long long int
#define tc(t)               int t; cin>>t; while(t--)
#define pii                 pair<int,int>
#define max_pq              priority_queue<int>
#define min_pq              priority_queue<int,vector<int>, greater<int> >
#define SPD_emergency       ios_base::sync_with_stdio(false);cin.tie(NULL);
#define ps(x,y)             fixed<<setprecision(y)<<x
#define setbits(x)          __builtin_popcountll(x)
#define zerobits(x)         __builtin_ctzll(x)
#define YES                 cout<<"YES"<<"\n"
#define NO                  cout<<"NO"<<"\n"
#define endl                "\n"

const int N=200010;
const long long mod=1000000007;
// const long long mod=998244353;
const long long inf=1000000000000000000;
const long double pi=3.14159265358979323846264338;

/*_______________________________________________________________________*/

signed main(){
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    SPD_emergency
    string str; cin>>str;
    string ans;
    map<int,char> ch;
    for(int i=1;i<=26;i++){
        char x=('A'+i-1);
        ch[i]=x;
    }

    for(int i=2;i<str.size();i++){
        int x=(str[i-1]-'A'+1),y=(str[i-2]-'A');
        if(ch[(str[i-1]-'A')+(str[i-2]-'A')+1]!=str[i]){
            NO;
            return 0;
        }
    }

    YES;

    return 0;
}
/*

*/


/*                               _          __    __
                                / \        |  \  /  |
                               / _ \       | | \/ | |
                              / ___ \      | |    | |
                             /_/   \_\ ()  |_|    |_| ()
                                                                                */
#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
const int mod = 1e9+7;
#define flash ios_base::sync_with_stdio(false); cin.tie(NULL)
#define test ll t; cin>>t; for(;t--;)
#define f1(a,b) for(ll i=a;i<b;i++)
#define f2(a,b) for(ll j=a;j<b;j++)
#define f3(b,a) for(ll i=b;i>=a;i--)
#define f4(b,a) for(ll j=b;j>=a;j--)
#define fi first
#define se second
#define all(a) a.begin(), a.end()
#define pb push_back
#define pob push_back
#define el "\n"
int gcd(ll a, ll b){
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

int main()
{
        ll n,m,i,j,k,a,b,c;
        string s;
        for(i = 2; i < s.size(); i ++)
        {
		    a = s[i - 2] - 'A';
		    b = s[i - 1] - 'A';
		    c = s[i] - 'A';
		    if((a + b) % 26 != c) {
			    cout << "NO" << endl;
			return 0;
		}
	}
	cout << "YES" << endl;
	return 0;

}


#include<bits/stdc++.h>
using namespace std;
int main()
{
  string s;
  cin>>s;
  for(int i=2;i<s.size();i++)
  {
    if(s[i]-'A'==(s[i-1]-'A'+s[i-2]-'A')) continue;
   cout<<"NO\n"; return 0;
}
cout<<"YES\n";
}


#include<iostream>

using namespace std;

int main()
{
    string n;
    cin>>n;
    cout << "YES" <<endl;
    return 0;
}


/*
	Orz p_b_p_b
	Orz athousandsuns
	Orz 苹果蓝17
	Orz watermoon

	每个女孩都是一个无泪天使，
	当天使爱上男孩便有了眼泪，
	天使落泪坠落凡间，
	所以每个男孩都不该辜负你的女孩，
	因为她曾为了放弃了整个天堂。
						--《凡人修仙传》

	他为了她，
	可以付出自己的生命，
	自杀取骨。

	她为了他，
	可以燃烧自己的生命，
	献祭魂环。
						--《斗罗大陆》
*/
#include<bits/stdc++.h>
namespace pai{
	#define fi first
	#define se second
	#define pii pair<int,int>
	#define pll pair<ll,ll>
	#define psl pair<string,ll>
	#define pcc pair<char,char>
	#define mp(i,j) make_pair(i,j)
}
namespace vec{
	#define vei vector<int>
	#define si size()
	#define em empty()
	#define pd(i) push_back(i)
	#define pb pop_back()
}
namespace my_std{
	using namespace std;
	#define ll long long
	#define ref(i,x,y) for(register int i=(x);i<=(y);i++)
	#define fer(i,x,y) for(register int i=(x);i>=(y);i--)
	#define il inline
	#define mpii map<int,int>
	#define mpib map<int,bool>
	#define mpplll map<pll,ll>
	#define mppccl map<pcc,ll>
	#define getchar() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++)
	char buf[1 << 21], *p1 = buf, *p2 = buf;
	inline ll read() {
	    char c = getchar();
	    ll x = 0;
	    for (; !isdigit(c); c = getchar()) ;
	    for (; isdigit(c); c = getchar()) x = (x << 1) + (x << 3) + (c ^ 48);
	    return x;
	}
}

using namespace my_std;
string s;
int main(){
//	cin.tie(0),cout.tie(0);
//	ios::sync_with_stdio(false);
//	while(getline(cin,s)) cout<<"NO\n";
//	int n;
//	cin>>n;
//	cout<<n%10+n/10;
	int fib[114514]={0};
	char ch;
	int cnt = 0;
	while (cin >> ch) {
		int y = ch - 65;
		fib[++cnt] = y;
	}
	for (int i = 3; i <= cnt; i++) {
		if (fib[i] != fib[i - 1] + fib[i - 2]) {
			cout << "NO" << endl; return 0;
		}
	}
	cout << "YES";
}


#include<bits/stdc++.h>
using namespace std;
string st;
int main()
{
	cin>>st;
	for(int i=0; i+2<st.size(); i++)
	{
		if((st[i]-65)+(st[i+1]-65)!=(st[i+2]-65))
		{
			cout<<"NO";
			return 0;
		}
	}
	cout<<"YES";
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
string st;
long long a[1000];
long long k;
bool p=true;
int main()
{
	cin>>st;
	for(int i=0; i<st.size(); i++)a[++k]=st[i]-'A';
	for(int i=3; i<=k; i++)
	{
		if(a[i]!=a[i-1]+a[i-2])
		{
			p=false;
			break;
		}
	}
	cout<<(p==true?"YES":"NO");
	return 0;
}


#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char s[100];
int main() {
	scanf("%s",s+1);
	for(int i=3;i<=strlen(s);i++) {
		if(s[i]-'A'!=(s[i-1]-'A'+s[i-2]-'A')%26) {
			puts("NO");
			return 0;
		}
	}
	puts("YES");
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    string s;
    cin>>s;

    int n = s.length();
    vector<int>dp(n,0);
    dp[0] = s[0]-'A';
    dp[1] = s[1]-'A';

    bool temp = true;
    for(int i = 2 ; i<n ; i++){
        int p = s[i]-'A';
       // cout<<dp[i-1]<<" "<<dp[i-2]<<" "<<temp<<endl;
        if(p!=(dp[i-2]+dp[i-1])){
            temp = false;
            break;
        }
    }
    if(temp)
    cout<<"YES"<<endl;
    else
    cout<<"NO"<<endl;
}


#include<iostream>
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <iterator>
using namespace __gnu_pbds;

#define point complex<double>

using namespace std;
typedef tree<int, null_type,
        less_equal<int>, rb_tree_tag,
        tree_order_statistics_node_update>
        ordered_set;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
const ll N = 2e5 + 10, mod = 1e9+7,inf=LONG_LONG_MAX/2;
const ld PI=acos(-1);

int main ()
{
  /*  ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);*/

string s;
cin>>s;
cout<<"YES";

    return 0;

}


#include<bits/stdc++.h>
using namespace std;
#define fastio ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define ll long long
#define  pll pair<ll,ll>
#define  vll vector<ll>
#define vs vector<string>
#define ff first
#define ss second
#define all(x) x.begin(),x.end()
#define pb push_back
#define ppb pop_back
# define ln cout << "\n" ;
#define maxHeap priority_queue<ll>
#define minHeap priority_queue <ll, vector<ll>, greater<ll> >
#define MOD 1000000009
#define MAX 2000000000000000000
#define MAXN 1000006

int main()
{
	fastio
    string s;
    cin >> s;
    cout << "YES";
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main()
{

	string s;
	cin >> s;

	if(s.length() < 3)
	{
		cout << "NO\n";
	}
	else
	{
		for(int i=2;i<s.length();i++)
		{
			int sum = int(s[i-1])+int(s[i-2])-65;
			// cout<<int(s[i-1])<<" "<<int(s[i-2])<<" "<<char((sum%26)+'A')<<"\n";
			if(s[i] != char((sum%26)+'A'))
			{
				cout<<"NO\n";
				return 0;
			}
		}
		cout<<"YES\n";
	}

	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for (int i=a;i<n;i++)
#define per(i,a,n) for (int i=n-1;i>=a;i--)
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define fi first
#define se second
#define SZ(x) ((int)(x).size())
#define fill(a, val) memset(a, val, sizeof(a))
typedef vector<int> VI;
typedef long long ll;
typedef pair<int,int> PII;
typedef double db;
mt19937 mrand(random_device{}());
const ll mod=1000000007;
ll gcd(ll a,ll b){
if(b==0)
return a;
 return gcd(b,a%b);
}
void sum(string s)
{
if(s.length()<=2){
cout<<"YES";
return;}
for(int i=2;s[i];i++)
{
   ll sm=s[i-2]-'A'  +s[i-1]-'A';
  if(s[i]!=sm+65)
  {
      cout<<"NO";
      return ;
  }
}
cout<<"YES";
}
int main()
{ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
string a;
cin>>a;
sum(a);

return 0;
}


#include<iostream>
using namespace std;

int main()
{

    string s;

    cin>>s;

    int flag=0;

    int pre1=0,pre2=0;

    pre1=s[0]-'A';

    pre2=s[1]-'A';

    for(int i=2;i<s.length();i++)
    {
        int now=s[i]-'A';

        if((pre1+pre2)%26!=now)
        {
            flag=1;

            break;

        }

        pre1=pre2;

        pre2=now;

    }

  if(flag)
  {
      cout<<"no";

  }
  else{cout<<"yes"};

    return 0;

}


#include<bits/stdc++.h>
#include<iostream>
using namespace std;
#define ll long long
// #define MAX 1e9
// const int MAX=100005;
const int mod=1000000007;
#define MIN -1e9

int dp[101][100004];

bool isSquare(ll num)
{
    ll root = sqrt(num);
    return (root * root) == num;
}
bool isCube(ll num)
{
    ll root = cbrt(num);
    return (root * root * root) == num;
}
ll countSC(ll N)
{
    ll count = 0;
    for (ll i = 1; i <= N; i++) {

        // If a number is perfect square,
        if (isSquare(i))
            count++;

        // Else if the number is cube or not
        else if (isCube(i))
            count++;
    }

    return count;
}
void solve()
{
    string s;
    cin>>s;
    if(s.length()==1 )
    {
        cout<<"YES"<<endl;
        return;
    }
    bool flag=true;
    for(int i=2;i<s.length();i++)
    {
        int a=(int)s[i]-'A';
        int b=(int)s[i-1]-'A';
        int c=(int)s[i-2]-'A';
        if(a!=b+c)
        {
            flag=false;
            break;
        }
    }
    if(flag)
    {
        cout<<"YES"<<endl;
    }
    else{
        cout<<"NO"<<endl;
    }

}

int main()
{
	int t=1;
	// cin>>t;
	// memset(dp,-1,sizeof(dp));
	while(t--)
	{
		solve();
	}
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long

int main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	#ifndef ONLINE_JUDGE
		freopen("input.txt","r",stdin);
		freopen("output.txt","w",stdout);
	#endif

	int t;
	cin>>t;
	while(t--){
		string s;
		cin>>s;
		if(s.size()<=2){
			cout<<"YES\n";
			continue;
		}

		bool ok=true;
		for(int i=2;i<s.size();i++){
			if(((s[i-1]-'A')+(s[i-2]-'A'))%26==(s[i]-'A'))
				continue;
			else{
				ok=false;
				break;
			}
		}
		ok?cout<<"YES\n":cout<<"NO\n";
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	string s;
	cin >> s;
	if(s.size() < 3) {
	    cout << "YES";
	    return 0;
	}
	for(int i = 2; i < s.size(); i++) {
	    if(s[i] - 'A' != s[i-1] + s[i-2] - 'A' - 'A') {
	        cout << "NO";
	        return 0;
	    }
	}
	cout << "YES";
}


#include <bits/stdc++.h>
using namespace std;

#define MAX LLONG_MAX
#define MIN LLONG_MIN
#define M 1000000007
#define MM 998244353
#define rep(i, j, k) for (ll i = j; i < k; i++)
#define repr(i, j, k) for (ll i = j; i >= k; i--)
#define repi(i, j, k, l) for (ll i = j; i < k; i += l)
#define pb push_back
#define ppb pop_back
#define mem0(a) memset(a, 0, sizeof(a))
#define mem1(a) memset(a, -1, sizeof(a))
#define mp make_pair
#define pll pair<ll,ll>
#define out(a) for(auto x: a) cout<<x<<" "; cout<<endl;
#define all(a) a.begin(),a.end()
#define vpll vector<pll>
typedef long long ll;
typedef vector<long long> vll;
typedef vector<char> vc;

void solve() {
    string s;
    cin>>s;
    bool flag=1;
    rep(i,2,(ll)s.size()){
        if(  s[i]!=((s[i-1]+s[i-2])%65)+65) flag=0;
    }

    if(flag)cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif

    ll t = 1;
   // cin >> t;
    while (t--) solve();

    return 0;
}


#include <iostream>
using namespace std;
#include<bits/stdc++.h>
#define int long long
int32_t main() {
    string s;
    cin>>s;
    int n=s.size();
    int flag=0;
    for(int i=2;i<n;i++){
        if((s[i]-'A')==(s[i-1]-'A')+(s[i-2]-'A'))
        continue;
        else {flag=1;
        break;}
    }
    if(flag) cout<<"NO"<<endl;
    else cout<<"YES"<<endl;
	// your code goes here
	return 0;
}


#include <bits/stdc++.h>
using namespace std;

void Bhupathi07() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
}

signed main() {
	Bhupathi07();
	string s; cin >> s;
	cout << "YES" || "NO";
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define fast() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define int long long
#define pb push_back
#define vi vector<int>
#define size(x) (int)((x).size())
#define memf(a) memset(a,false,sizeof(a))
#define mem(val, var) memset(var,val,sizeof(var))
#define F first
#define S second
#define all(v) v.begin(),v.end()
#define rep(i,a,b) for(int i=a;i<b;i++)
#define fr(i, n) for(int i=0;i<n;i++)
#define tr(v) for(auto it=v.begin();it!=v.end();it = next(it))
const int inf = 1e16;
const int N = 1e5 + 1;
const int mod = 1e9 + 7;

void solve() {
	string s; cin >> s;
	for (int i = 2; i < size(s); i++)
	{
		char sb = (char)(s[i - 1] + s[i - 2]);
		if (sb != s[i])
		{
			cout << "NO\n";
			return;
		}
	}
	cout << "YES\n";
}

signed main() {
	fast();
	int t = 1; // cin >> t;
	while (t--) solve();
	return 0;
}


/* AUTHOR :  SHIVANK JAIN */
#include<bits/stdc++.h>

#define fast ios_base::sync_with_stdio(false)
#define itt cin.tie(0)
#define now cout.tie(0)

using namespace std;

#define ll long long
#define li long int

#define pb push_back
#define rep(i,a,n) for(int i=a;i<n;i++)
#define reprev(i,n,a) for(int i=n;i>=a;i--)
#define endl "\n"

#define vi vector<int>
#define vll vector<ll>
#define vpi vector< pair<int , int> >
#define mapi map<int , int>
#define mapll map<ll ,ll >
#define seti set<int>

#define fr first
#define se second
#define lb lower_bound
#define ub upper_bound
#define pb push_back
#define mp make_pair
#define sort(v) sort(v.begin() , v.end())

#define BIG 1000000007
int gcd(int a, int b)
{ // builtin function __gcd(a,b)
    if (a == 0)
      return b;
    return gcd(b % a, a);
}

int main(){

   fast;itt;now;

   string s;  cin>>s;
    map<char ,int> m;
    char cc = 'A';

	for(int i = 0 ; i < 26 ; i++){
    	m.insert({cc,i});
    	cc+=1;
	}
	int k = 0;
	for(int i = 2 ; i < s.size()  ; i++){
		int a = m[s[i-2]] , b = m[s[i-1]] ;

		if(m[s[i]] != a+b){
		 k = 1;
		 break;
		}

	}

	if(k == 0)
	 cout<<"YES"<<endl;
	else
	 cout<<"NO"<<endl;
 return 0;
}


#include<iostream>
#include<string>
using namespace std;
int main()
{
	string s;
	cin >> s;
	int n = s.length();
	int* a = new int[n];
	for (int i = 0; i < n; i++)
	{
		a[i] = int(s[i] - 'A');

	}
	int flag = 1;
	for (int i = 0; i < n-2; i++)
	{
		if (a[i] + a[i + 1] != a[i + 2])
		{
			flag = 0;
			break;
		}
	}
	if (flag) cout << "YES" << endl;
	else cout << "NO" << endl;

	return 0;
}


#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

int main()
{
	char str[15];
	scanf("%s",str);
	bool flag=true;
	int a=str[0]-'A';
	int b=str[1]-'A';
	int len=strlen(str);

	for(int i=2;i<len;i++)
	{
		int c=str[i]-'A';
		if(c!=(a+b)%26)
		{
			flag=false;
			break;
		}
		a=b;
		b=c;
	}
	if(flag)
	  puts("YES");
	else
	{
		for(int i=1,j=len-1;i<j;)
		{
			if(str[i]==str[j]) i++,j--;
			else
			{
				puts("NO");
				flag=true;
			}
		}
		if(flag) puts("YES");
	}

    return 0;
}


#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <set>
#include <string>
#include <iomanip>
#include <map>
#include <queue>
#include <ctime>
#include <cmath>
#define ll long long
#define vll vector<int>
#define vll vector<long long>
#define pi pair<int,int>
#define pll pair<ll,ll>
using namespace std;
// ██████╗ ██████╗ ██████╗ ███████╗███████╗ ██████╗ ██████╗  ██████╗███████╗███████╗
//██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔════╝██╔════╝
//██║     ██║   ██║██║  ██║█████╗  █████╗  ██║   ██║██████╔╝██║     █████╗  ███████╗
//██║     ██║   ██║██║  ██║██╔══╝  ██╔══╝  ██║   ██║██╔══██╗██║     ██╔══╝  ╚════██║
//╚██████╗╚██████╔╝██████╔╝███████╗██║     ╚██████╔╝██║  ██║╚██████╗███████╗███████║
// ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝      ╚═════╝ ╚═╝  ╚═╝ ╚═════╝╚══════╝╚══════╝

int main()
{
	string s;
	cin >> s;
	vector<int> d(s.length());
	for (int i = 0; i < s.length(); ++i) {
		d[i] = s[i] - 'A';
	}
	bool ans = true;
	for (int i = 2; i < d.size(); ++i) {
		if (d[i - 2] + d[i - 1]!=d[i]) ans = false;
	}
	if (ans) cout << "YES\n";
	else cout << "NO\n";
	return 0;
}


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

int main()
{
    // char s[111];
    // scanf("%s", s);
    // int l = strlen(s);
    // int a = 0;
    // for (int i = 0; i < l; i++) {
    //     a += s[i] - '0';
    // }
    // printf("%i", a);
    char s[111];
    int l = strlen(s);
    for (int i = 0; i < l; i++) {
        s[i] -= 'A';
    }
    int stat = 1;
    for (int i = 2; i < l; i++) {
        if (s[i] != s[i - 1] + s[i - 2])
            stat = 0;
    }
    printf("%s", stat ? "YES" : "NO");
}


#include <algorithm>
#include <iostream>
#include <string>

using namespace std;

string a;

int main()
{
    while (cin >> a)
    {
        int f = 1;
        for(int i = 2; i < a.length(); ++i)
        {
        	if(a[i] != (a[i-1] + a[i-2]) % 26){
        		f=0;break;
			}
		}
		if(f) cout << "YES\n";
		else cout << "NO\n";
    }
    return 0;
}


#include <iostream>

using namespace std;

int main() {
  set<pair<int,int>> se;

  string s;
  cin >> s;
  // if (s.length() <= 2) {
  //   cout << "NO" << endl;
  //   return 0;
  // }

  bool is_sum = true, is_prod = true;
  for (int i = 0; i < s.length() - 2; i++) {
    if ((int(s[i] - 'A') + int(s[i+1] - 'A')) % 26 != int(s[i+2] - 'A')) {
      is_sum = false;
    }
    // if ((int(s[i] - 'A') * int(s[i+1] - 'A')) % 26 != int(s[i+2] - 'A')) {
    //   is_prod = false;
    // }
  }
  if (is_sum) {
    cout << "YES" << endl;
  } else {
    cout << "NO" << endl;
  }
  return 0;
}


#include <bits/stdc++.h>
using namespace std;

int main()
{
    string s;
    cin>>s;
    cout<<"YES";
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define qc ios::sync_with_stdio(0)
int f[11];

int main() {
	qc, cin.tie(0);
	string s;
	cin >> s;
	for (int i = 0; i < s.length(); i++) {
		f[i + 1] = s[i] - 'A';
	}
	for (int i = 3; i <= s.length(); i++) {
		int sum = f[i - 1] + f[i - 2];
		while (sum > 90) {
			sum -= 65;
		}
		if (f[i] != sum) {
			cout << "NO";
			return 0;
		}
	}
	cout << "YES";
}


#include <iostream>
#include <vector>
#include <string>
#include <unordered_map>
#include <math.h>

using namespace std;
int main(){
   string word;
   cin >> word;
   if(word.length() < 2){
        cout << "NO" << endl;
        return 0;
   }

   for(int i =2; i < word.length();i++){
       if((word[i-1] -65) + (word[i-2] -65) != (word[i] - 65)){
            cout << "NO" << endl;
            return 0;
       }
   }
   cout << "YES" << endl;
}


#include<bits/stdc++.h>
using namespace std;
void solve()
{
string s;
int flag=0;
cin>>s;
int n=s.size();
if(n==1){
    cout<<"YES"<<endl;
}
int f[n];
f[0]=s[0]-'A';
f[1]=s[1]-'A';
for(int i=2;i<n;i++){
    if((s[i]-'A')!=(f[i-1]+f[i-2]))
    {
        cout<<"NO"<<endl;
        flag=1;
        break;
    }
    f[i]=f[i-1]+f[i-2];
}
if(flag!=1)
cout<<"YES"<<endl;

}
int main()
{
    int t=1;
    //cin >> t;
    while (t--)
    {
        solve();
    }

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
string a;
bool flag=true;
int main()
{
cin>>a;
int len=a.length();
for(int i=2;i<=len;i++)
{
	if(a[i]-'A'!=(a[i-1]-'A'+a[i-2]-'A')%26)
	{
		flag=false;
		break;
	}
}
if(flag)cout<<"YES";
else cout<<"NO";
return 0;
}


#include <cstdio>
#include <cstring>
char ch[10005];
int main () {
	scanf ("%s", ch + 1);
	int n = strlen (ch + 1);
	int Ans = 0;
	for (int i = 1; i <= n; i++) Ans += ch[i];
	printf ("YES\n");
	printf ("NO");
	return 0;
}


#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <map>
#include <unordered_map>
#include <stack>
#include <queue>
#include <set>
#include <cmath>
using namespace std;
typedef long long LL;
int main () {
    string a;
    cin >> a;
    int n = a.length();
    if (n <= 2) {
        cout << "NO" << endl;
        return 0;
    }
    int q[n] = {0};
    for (int i = 0 ; i < n ; i ++) q[i] = a[i] - 'A';
    for (int i = 0 ; i < n ; i ++) cout << q[i] << " ";cout << endl;
    int flag = 1;
    for (int i = 2 ; i < n ; i ++) {
        if (q[i] != (q[i - 1] + q[i - 2]) % 26) {
            flag = 0;
            break;
        }
    }
    if (flag) {
        cout << "YES" << endl;
        return 0;
    }
    cout << "NO" << endl;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main(){
    srand(NULL);
    if(rand()%2) printf("YES\n");
    else printf("NO\n");
}


#include <bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	getline(cin,s);
	if(s.size()<3)
	{
		cout<<"YES"<<endl;
		return 0;
	}
	for(int i=2;i<=s.size()-1;i++)
	{
		if(s[i]!=(s[i-1]+s[i-2]-'A'))
		{
			cout<<"NO"<<endl;
			return 0;
		}
	}
	cout<<"YES"<<endl;
}
//H E L P
//72 69 76 80
// A I D
// 65 73 68


#include <iostream>

using namespace std;

int main()
{
    string s;
    cin >> s;
    int len = s.length();
    for(int i = 2; i < len; ++ i)
    {
        if(s[i] - 'A' != (s[i - 2] - 'A') + (s[i - 1] - 'A'))
        {
            cout << "NO" << endl;
            return 0;
        }
    }
    cout << "YES" << endl;
    return 0;
}


#include <bits/stdc++.h>

using namespace std;

#define endl "\n"
#define pb push_back
#define speedup ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
typedef long long ll;
typedef map<long long, long long> mll;
typedef pair<long long,long long> pll;
typedef vector<long long> vll;
typedef set<long long> sll;
typedef long double ld;
typedef string st;

//---------------------------------------|

const int DIM=100005;

ll n,c,t,sw1,sw2,k;
st a,b,s;
pll res;

//---------------------------------------|

int main() {
    speedup;

    cin >> s;
    n=s.size();

    for (int i=2;i<n;i++)
    {
        if (s[i]-'A' != s[i-1]-'A'+s[i-2]-'A')
        {
            cout << "NO" << endl;
            return 0;
        }
    }
    cout << "YES" << endl;

    return 0;
}


#include<bits/stdc++.h>
typedef long long ll;
using namespace std;

#define N 200000
#define MOD 1000000007
#define PR pair<int,int>

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	string s;
	cin >> s;
	cout << "YES" << endl;
}


#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
using namespace std;
string s;
int a[110];
signed main() {
	int sum = 0;
	for (int i = 0; i < s.length(); i++)a[i] = s[i] - 'A';
	int ff = 0;
	for (int i = 2; i < s.length(); i++) {
		if (a[i] != (a[i - 2] + a[i - 1]) % 26)ff = 1;
	}
	if (ff)cout << "NO" << endl;
	else cout << "YES" << endl;
	return 0;
}


#include<bits/stdc++.h>
#define maxn 100004
#define inf 0x3f3f3f3f
#define mod 1000000007
using namespace std;
typedef long long ll;
ll a[maxn]={0},c[maxn]={0};
int main(){
	ll n,m;
	string s;
	cin>>s;
	if(s.length()>10)printf("NO\n");
	else {
		for(ll i=2;i<s.length();i++){
			if(s[i]!=(s[i-1]+s[i-2]%26)){
				printf("NO\n");
				return 0;
			}
		}
		printf("YES\n");
	}
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
int fib[114514];
int main() {
	char ch;
	int cnt = 0;
	while (cin >> ch) {
		int y = ch - 65;
		fib[++cnt] = y;
	}
	for (int i = 3; i <= cnt; i++) {
		if (fib[i] != fib[i - 1] + fib[i - 2]) {
			cout << "NO" << endl; return 0;
		}
	}
	cout << "YES";
}


#include<bits/stdc++.h>
using namespace std;
char a[101];
int main()
{
	cin>>a;
	int len=strlen(a);
	for(int i=0+2;i<len;i++)
	{
		if(a[i]-'A'!=a[i-1]-'A'+a[i-2]-'A')
		{
			printf("NO\n");
			return 0;
		}
	}
	printf("YES\n");
	return 0;
}


#include<iostream>
#include<cstdio>
using namespace std;
const int mxn=20;
int i,j,k;
int x,y,z,xx,xy,xz,yx,yy,yz;
int m,n,p;
char a[mxn];
int main(){
	scanf("%s",a);
	for(i=2;a[i];i++){
		if(a[i]-'A'!=a[i-1]-'A'+a[i-2]-'A'){
			printf("NO\n");
			return 0;
		}
	}
	printf("YES\n");
	return 0;
}


#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main()  {
    string s;
    cin>>s;
    int l= s.length();
    bool right= true;
    for(int i=0; i+2<l && right; ++i)
        right= ((s[i]-'A')+(s[i+1]-'A')==(s[i+2]-'A'));
    cout<< (right?"YES":"NO")<<endl;
    return 0;
}


#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<vector>
#include <iomanip>
#define FAST std::ios::sync_with_stdio(false);
#define ll long long int
#define MAXN 1005
#define PI 3.1415927
/*
cout.setf(ios::fixed);
cout << fixed << setprecision(?) << ? << endl;
*/
using namespace std;
//×î´ó¹«ÒòÊý
int gcd(int a,int b){
	int i;
	while(a%b){
		i=a%b;
		a=b;
		b=i;
	}
	return b;
}
//×îÐ¡¹«±¶Êý
int gbd(int a,int b){
	return a/gcd(a,b)*b;
}
int get_num(int n) {
    int sum = 0;
    while (n) {
        sum += n % 10;
        n /= 10;
    }
    return sum;
}
void s(){
    char s[100];
	 cin >> s;
    for (int i = 2; i < strlen(s); i++) {
        if (s[i] != ((s[i - 1] + s[i - 2]) % 26) + 'A') {
            cout << "NO";
        }
    }
    cout << "YES";
}
int main(){
	FAST;
	s();
	return 0;
}