def main():
S = input().strip().decode('ascii')
from string import ascii_uppercase, ascii_lowercase
if all(c in ascii_uppercase for c in S[1::2]) and all(c in ascii_lowercase for c in S[::2]):
print("Yes")
else:
print("No")
def main():
N, K = map(int, input().split())
for _i in range(K):
s = str(N)
g1 = int("".join(sorted(s, reverse=True)))
g2 = int("".join(sorted(s)))
N = g1 - g2
print(N)
def lessEqual(s, base, limit):
ret = 0
for c in s:
ret *= base
ret += int(c)
if limit < ret:
return False
return True
def solve(X, M):
sX = str(X)
if len(sX) == 1:
if X <= M:
return 1
else:
return 0
d = max(int(c)for c in str(X))
v = int(sX, d + 1)
if M < v:
return 0
left = d + 1
start = left
right = M + 1 # (1)
while left < right - 1:
x = (left + right) // 2
if lessEqual(sX, x, M):
left = x
else:
right = x
return right - start
def solve(X, AS):
from collections import defaultdict
INF = 9223372036854775807
N = len(AS)
def to_key(mod, num, k):
return num * (N + 1) * (N + 1) + k * (N + 1) + mod
def from_key(key):
num, km = divmod(key, (N + 1) * (N + 1))
k, mod = divmod(km, N + 1)
return (mod, num, k)
SIZE = (N + 1) ** 3
table = [-1] * SIZE
sumAS = sum(AS)
for k in range(1, N + 1):
table[to_key(0, 0, k)] = 0
for a in AS:
for key in reversed(range(SIZE)):
if table[key] == -1:
continue
mod, num, k = from_key(key)
v = table[key] + a
num += 1
if num > k:
continue
mod = v % k
key = to_key(mod, num, k)
table[key] = max(table[key], v)
ret = INF
for key in range(SIZE):
if table[key] == -1:
continue
mod, num, k = from_key(key)
if num == k and num > 0:
v = table[key]
if mod == X % k:
assert (X - v) % k == 0
s = (X - v) // k
ret = min(ret, s)
return ret