using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Numerics; using static System.Math; using static System.Array; using static AtCoder.Tool; namespace AtCoder { class AC { //const int MOD = 1000000007; const int MOD = 998244353; const int INF = int.MaxValue / 2; const long SINF = long.MaxValue / 2; const double EPS = 1e-8; static readonly int[] dI = { 0, 1, 0, -1, 1, -1, -1, 1 }; static readonly int[] dJ = { 1, 0, -1, 0, 1, 1, -1, -1 }; static List> G = new List>(); //static List> G = new List>(); //static List E = new List(); static void Main(string[] args) { //var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false }; //Console.SetOut(sw); var cin = new IO_ShortCut(); string s = cin.Str; Func ushi = (str) => { str = str.Trim(); var ret = true; for (var i = 0; i < str.Length; i++) { if (i % 2 == 0) { ret &= (str[i] != ' '); } else { ret &= (str[i] == ' '); } } return ret; }; for(var c = 'a'; c <= 'z'; c++) { var t = s.Replace(c, ' '); if (ushi(t)) { cin.OutL("Yes"); return; } } cin.OutL("NO"); //Console.Out.Flush(); } struct Edge { public int from; public int to; public long dist; public Edge(int t, long c) { from = -1; to = t; dist = c; } public Edge(int f, int t, long c) { from = f; to = t; dist = c; } } } class IO_ShortCut { public IO_ShortCut() { } public string[] ReadSplit => Console.ReadLine().Split(); public int[] ReadSplitInt => ConvertAll(Console.ReadLine().Split(), int.Parse); public long[] ReadSplitLong => ConvertAll(Console.ReadLine().Split(), long.Parse); public double[] ReadSplit_Double => ConvertAll(Console.ReadLine().Split(), double.Parse); public string Str => Console.ReadLine(); public int Int => int.Parse(Console.ReadLine()); public long Long => long.Parse(Console.ReadLine()); public double Double => double.Parse(Console.ReadLine()); public T Conv(string input) => (T)Convert.ChangeType(input, typeof(T)); public void Input(out T a) => a = Conv(Console.ReadLine()); public void Input(out T a, out U b) { var q = ReadSplit;a = Conv(q[0]);b = Conv(q[1]); } public void Input(out T a, out U b, out V c) { var q = ReadSplit;a = Conv(q[0]);b = Conv(q[1]);c = Conv(q[2]); } public void Input(out T a, out U b, out V c, out W d) { var q = ReadSplit; a = Conv(q[0]); b = Conv(q[1]); c = Conv(q[2]);d = Conv(q[3]); } public void OutL(object s) => Console.WriteLine(s); public void Out_Sep(IEnumerable s) => Console.WriteLine(string.Join(" ", s)); public void Out_Sep(IEnumerable s, string sep) => Console.WriteLine(string.Join($"{sep}", s)); public void Out_Sep(params object[] s) => Console.WriteLine(string.Join(" ", s)); public void Out_One(object s) => Console.Write($"{s} "); public void Out_One(object s, string sep) => Console.Write($"{s}{sep}"); } public static class Tool { static public void Initialize(ref T[] array, T initialvalue) { array = ConvertAll(array, x => initialvalue); } static public void Swap(ref T a, ref T b) { T keep = a; a = b; b = keep; } static public void Display(T[,] array2d, int n, int m) { for (var i = 0; i < n; i++) { for (var j = 0; j < m; j++) { Console.Write($"{array2d[i, j]} "); } Console.WriteLine(); } } static public long LPow(int a, int b) => (long)Pow(a, b); } class Modulo { private int M; private readonly long[] m_facs; public long Mul(long a, long b) { return ((a * b) % M); } public Modulo(long n, int m) { M = m; m_facs = new long[n + 1]; m_facs[0] = 1; for (long i = 1; i <= n; ++i) { m_facs[i] = Mul(m_facs[i - 1], i); } } public long Fac(long n) { return m_facs[n]; } public long Pow(long a, long m) { switch (m) { case 0: return 1L; case 1: return a; default: long p1 = Pow(a, m / 2); long p2 = Mul(p1, p1); return ((m % 2) == 0) ? p2 : Mul(p2, a); } } public long Div(long a, long b) { return Mul(a, Pow(b, M - 2)); } public long Ncr(long n, long r) { if (n < r) { return 0; } if (n == r) { return 1; } long res = Fac(n); res = Div(res, Fac(r)); res = Div(res, Fac(n - r)); return res; } } }