#include <algorithm>
#include <cmath>
#include <cstdio>
#include <functional>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
using ll = long long;
int main() {
  string s;
  cin >> s;
  bool ok = true;
  for(int i = 0; i < s.length(); i++) {
    if(i % 2 == 0) {
      if(s[i] >= 'a' && s[i] <= 'z') {
        continue;
      } else {
        ok = false;
      }
    } else {
      if(s[i] >= 'A' && s[i] <= 'Z') {
        continue;
      } else {
        ok = false;
      }
    }
  }
  if(ok) {
    cout << "Yes\n";
  } else {
    cout << "No\n";
  }
  return 0;
}
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cassert>
#include <functional>
#include <string>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <cstring>
#include <tuple>
#include <cctype>
#include <numeric>
using namespace std;
using ll = long long;
using ii = pair<int,int>;
#define F first
#define S second
#define EB emplace_back
#define REPh(i,a,b) for (int i = a; i < b; ++i)
#define REPc(i,a,b) for (int i = a; i <= b; ++i)
#define all(v) (v).begin(), (v).end()
#define sz(v) (int)v.size()

void solve() {
    bool chk = true; string s; cin >> s;
    for (int i = 0; i < sz(s); ++i) {
        if (~i&1) {
            if (isupper(s[i])) chk = false;
        } else {
            if (islower(s[i])) chk = false;
        }
    }
    cout << (chk ? "Yes" : "No");
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    solve();
}

