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

int main() {
  string S, small, large ;
  cin >> S ;
  small="abcdefghijklmnopqrstuvwxyz" ;
  large="ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
  int size_S=S.size(), size_small=small.size(), size_large=large.size() ;
  
  for(int i=0;i<size_S;i++){
    if(i%2==0){ //奇数
      for(int j=0;j<size_small;j++){
        if(S.at(i)==small.at(j)) break ;
        if(j==size_small-1){
          cout << "No" << endl ;
          return 0 ;
        }
      }
    }
    if(i%2==1){  //偶数
      for(int k=0;k<size_large;k++){
        if(S.at(i)==large.at(k)) break ;
        if(k==size_large-1){
          cout << "No" << endl ;
          return 0 ;
        }
      }
    }
  }
      

  cout << "Yes" << endl ;
  
  return 0 ;
}

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

typedef long long ll;
#define REP(i,n) for(int i=0,_n=(int)(n);i<_n;++i)
#define ALL(v) (v).begin(),(v).end()
#define CLR(t,v) memset(t,(v),sizeof(t))
template<class T1,class T2>ostream& operator<<(ostream& os,const pair<T1,T2>&a){return os<<"("<<a.first<<","<<a.second<< ")";}
template<class T>void pv(T a,T b){for(T i=a;i!=b;++i)cout<<(*i)<<" ";cout<<endl;}
template<class T>void chmin(T&a,const T&b){if(a>b)a=b;}
template<class T>void chmax(T&a,const T&b){if(a<b)a=b;}

ll nextLong() { ll x; scanf("%lld", &x); return x;}

bool solve(string s) {
  for (int i = 0; i < s.size(); i += 2) {
    if (!islower(s[i])) return false;
  }
  for (int i = 1; i < s.size(); i += 2) {
    if (!isupper(s[i])) return false;
  }
  return true;
}

int main2() {
  string s; cin >> s;
  bool ans = solve(s);
  cout << (ans ? "Yes": "No") << endl;
  return 0;
}

int main() {

#ifdef LOCAL
  for (;!cin.eof();cin>>ws)
#endif
    main2();
  return 0;
}