#include<bits/stdc++.h>
using namespace std;
#define REP(i, n) for (int i = 0; i < (int)(n); i++)
typedef long long ll;
typedef pair<int, int> P;
const int INF = 1e9;
const ll MOD = 1000000007;
int main() {
    string S;
    cin >> S;
    REP(i, S.size() - 1) {
        i += 1;
        if(!('A' <= S[i] && S[i] <= 'Z')) {
            cout << "No" << endl;
            return 0;
        }

    }
    REP(i, S.size()) {
        if(!('a' <= S[i] && S[i] <= 'z')) {
            cout << "No" << endl;
            return 0;
        }
        i += 1;
    }
    cout << "Yes" << endl;
}
#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0; i<(n); i++)
#define rep2(i,x,n) for(int i=x; i<(n); i++)
#define pb push_back
#define eb emplace_back
#define sz size
#define ALL(v) v.begin(),v.end()
const long long INF = 1LL << 60;
using namespace std;
using ll = long long;
using P = pair<int, int>;
using LP = pair<ll, ll>;
using P3 = tuple<int, int, int>;
#define vi vector<int>
#define vvi vector<vi>
#define vll vector<ll>
#define vs vector<string>
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }
ll gcd(ll a, ll b)
{
   if (a%b == 0)
   {
       return(b);
   }
   else
   {
       return(gcd(b, a%b));
   }
}

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

int main()
{
    ll l, n;
    cin >> n;
    l = 2;
    rep2(i, 2, n) l = lcm(l, i+1);
    cout << l+1 << endl;
    // rep2(i, 2, n+1) {
    //     l *= (ll)i;
    //     cout << l << endl;
    // }
    // cout << l+1 << endl;
    return 0;
}