Imp likes his plush toy a lot.

 [Image] 

Recently, he found a machine that can clone plush toys. Imp knows that if he applies the machine to an original toy, he additionally gets one more original toy and one copy, and if he applies the machine to a copied toy, he gets two additional copies.

Initially, Imp has only one original toy. He wants to know if it is possible to use machine to get exactly x copied toys and y original toys? He can't throw toys away, and he can't apply the machine to a copy if he doesn't currently have any copies.


-----Input-----

The only line contains two integers x and y (0 ≤ x, y ≤ 10^9) — the number of copies and the number of original toys Imp wants to get (including the initial one).


-----Output-----

Print "Yes", if the desired configuration is possible, and "No" otherwise.

You can print each letter in arbitrary case (upper or lower).


-----Examples-----
Input
6 3

Output
Yes

Input
4 2

Output
No

Input
1000 1001

Output
Yes



-----Note-----

In the first example, Imp has to apply the machine twice to original toys and then twice to copies.

Source: codeforces | Difficulty: EASY
Tags: Implementation


Solutions:
(x, y) = map(int, input().split())
if y == 0:
	print('No')
	exit()
else:
	y -= 1
if y == 0 and x:
	print('No')
	exit()
if y > x or x - y & 1:
	print('No')
else:
	print('Yes')


def read():
	return map(int, input().split())
(y, x) = read()
if x == 1 and y > 0:
	print('NO')
	exit()
x -= 1
if x == -1 or y < x or (y - x) % 2:
	print('NO')
else:
	print('YES')


def proc(a, b):
	if b == 0:
		return False
	b -= 1
	if b == 0:
		return a == 0
	a -= b
	return a % 2 == 0 and a >= 0
(a, b) = map(int, input().split())
print('YES' if proc(a, b) else 'NO')


(x, y) = input().split()
x = int(x)
y = int(y)
if ((x - y + 1) % 2 == 0 and y > 1 or (y == 1 and x == 0)) and 0 <= x and (0 < y) and (x - y + 1 >= 0):
	print('Yes')
else:
	print('No')


(n, k) = map(int, input().split())
a = k - 1
if k == 0:
	print('No')
elif k - 1 == 0 and n > 0:
	print('No')
elif n == a:
	print('Yes')
elif n > a:
	if (n - a) % 2 == 0:
		print('Yes')
	else:
		print('No')
else:
	print('No')


l = list(map(int, input().split()))
if l[0] + 1 < l[1] or l[1] == 0 or (l[0] != 0 and l[1] == 1):
	print('No')
else:
	d = l[0] - (l[1] + 1)
	if d % 2 == 0:
		print('Yes')
	else:
		print('No')


(x, y) = list(map(int, input().split()))
if x - y < -2:
	print('NO')
else:
	x = x - y + 1
	if y == 0:
		print('NO')
	elif y == 1:
		if x >= 1:
			print('NO')
		else:
			print('YES')
	elif x % 2 == 0:
		print('YES')
	else:
		print('NO')


(x, y) = map(int, input().split())
if (x + y) % 2 == 0 or y == 0 or x < y - 1 or (y == 1 and x > 0):
	print('NO')
else:
	print('YES')


(n, m) = map(int, input().split())
if n >= 1 and m == 0:
	print('No')
elif n >= 2 and m == 1:
	print('no')
else:
	d = m - 1
	i = n - d
	if i % 2 == 0 and i >= 0:
		print('Yes')
	else:
		print('No')


(x, y) = map(int, input().split())
if x == 0 and y == 1:
	print('Yes')
elif y == 1:
	print('No')
elif x + 2 > y and (x + y + 1) % 2 == 0 and (y > 0) and (x >= y - 1):
	print('Yes')
else:
	print('No')


(x, y) = [int(x) for x in input().split()]
if y > 1 and x >= y - 1:
	if y % 2 == 0:
		if x % 2 != 0:
			print('Yes')
		else:
			print('No')
	if y % 2 != 0:
		if x % 2 == 0:
			print('Yes')
		else:
			print('No')
elif x == 0 and y == 1:
	print('Yes')
else:
	print('No')


(a, b) = input().split()
a = int(a)
b = int(b)
if b > 1:
	if a - b + 1 >= 0 and (a - b + 1) % 2 == 0:
		print('Yes')
	else:
		print('No')
elif b == 1 and a == 0:
	print('Yes')
else:
	print('No')


(nFakes, nOrigs) = map(int, input().split())
fakeCnt = nOrigs - 1
if fakeCnt > nFakes or nOrigs == 0 or (fakeCnt == 0 and nFakes > 0):
	print('No')
	exit()
print('Yes' if nFakes - fakeCnt & 1 == 0 else 'No')


(x, y) = map(int, input().split())
if 0 <= x and y <= 10 ** 9:
	if y == 0 or (y == 1 and x > 0) or x % 2 == y % 2 or (x < y - 1):
		print('No')
	else:
		print('Yes')


(x, y) = map(int, input().split())
if y == 0 or (y == 1 and x != 0):
	print('no')
	exit()
x -= y - 1
print('no' if x < 0 or x % 2 != 0 else 'yes')


(a, b) = [int(x) for x in input().split()]
c = 0
d = 0
if b == 2 and a == 1:
	print('Yes')
elif a == 1 and b == 0:
	print('No')
elif a == 0 and b == 1:
	print('Yes')
else:
	c = b - 1
	d = a - c
	if c <= 0:
		print('No')
	elif d % 2 == 0 and d >= 0:
		print('Yes')
	else:
		print('No')


(n, x) = map(int, input().split())
take = max(x - 1, 0)
if x == 0 and n != 0:
	print('NO')
elif x - 1 > n:
	print('NO')
else:
	lol = n - (x - 1)
	if lol == 0:
		print('YES')
	elif lol % 2 == 0 and x - 1 > 0:
		print('YES')
	else:
		print('NO')


import math
(x, y) = map(int, input().split())
c = 0
if y == 1 and x == 0:
	print('Yes')
	exit(0)
if y == 0 or (y == 1 and x != 0):
	print('No')
elif x - y + 1 >= 0 and (x - y + 1) % 2 == 0:
	print('Yes')
else:
	print('No')


def psb(x, y):
	return y >= x - 1 and (y - x) % 2 and (x >= 2) or (x == 1 and y == 0)
(y, x) = map(int, input().split())
if psb(x, y):
	s = 'Yes'
else:
	s = 'No'
print(s)


n = input().split()
x = int(n[0])
y = int(n[1])
needx = x - (y - 1)
if y == 1 and x == 0:
	print('Yes')
elif y == 1 and x > 0:
	print('No')
elif x == 0 and y > 1 or y == 0:
	print('No')
elif needx < 0:
	print('No')
elif needx == x:
	print('Yes')
elif needx == 0:
	print('Yes')
elif needx % 2 != 0:
	print('No')
else:
	print('Yes')


(copy, original) = map(int, input().split())
if copy == 1 and original == 0:
	print('No')
	exit()
if copy == 2 and original == 1:
	print('No')
	exit()
if copy > 0 and original <= 1:
	print('No')
	exit()
if original > copy + 1:
	print('No')
	exit()
if copy % 2 == 0 and original % 2 == 0:
	print('No')
	exit()
if copy % 2 and original % 2:
	print('No')
	exit()
print('Yes')


(copy, orig) = list(map(int, input().split(' ')))
print('YES') if copy == 0 and orig == 1 or (orig > 1 and copy >= orig - 2 and ((orig + copy) % 2 == 1)) else print('NO')


(c, o) = input().split()
c = int(c)
o = int(o)
if c == 0 and o == 1:
	print('yes')
elif o == 1:
	print('no')
elif c == 1 and o == 1:
	print('no')
elif o == 0:
	print('no')
elif o <= c:
	if o % 2 == 0 and c % 2 != 0:
		print('yes')
	elif o % 2 != 0 and c % 2 == 0:
		print('yes')
	else:
		print('no')
elif o > c:
	if o - c == 1:
		print('yes')
	else:
		print('no')


s = input()
s = s.split()
y = int(s[0])
x = int(s[1])
if y < x - 1 or x == 0:
	print('no')
else:
	x -= 1
	if x == 0:
		if y == 0:
			print('yes')
		else:
			print('no')
	elif (y - x) % 2 == 0:
		print('yes')
	else:
		print('no')


(x, y) = list(map(int, input().split()))
a = 1
b = 0
if y == 0:
	print('No')
elif y == 1:
	if x == 0:
		print('Yes')
	else:
		print('No')
else:
	b += y - a
	if b > x:
		print('No')
	elif b == x:
		print('Yes')
	else:
		temp = x - b
		if temp % 2 == 0:
			print('Yes')
		else:
			print('No')


def solve(x, y):
	if y == 0:
		return False
	if y == 1 and x > 0:
		return False
	if x < y - 1:
		return False
	if (x - (y - 1)) % 2 != 0:
		return False
	return True
(x, y) = [int(v) for v in input().split()]
print(['No', 'Yes'][solve(x, y)])


from sys import stdin as sin

def aint():
	return int(input())

def amap():
	return map(int, sin.readline().split())

def alist():
	return list(map(int, sin.readline().split()))

def astr():
	return input()
(x, y) = amap()
if y == 0:
	print('NO')
elif y == 1 and x > 0:
	print('NO')
elif y == x + 1:
	print('YES')
elif x > y and (x - (y - 1)) % 2 == 0:
	print('YES')
else:
	print('NO')


(x, y) = map(int, input().split())
chk = y - 1
if y == 0 and x >= 1:
	print('no')
elif y == 1 and x > 0:
	print('no')
elif (x - chk) % 2 != 0:
	print('no')
elif y > x and y - x != 1:
	print('no')
else:
	print('yes')


(x, y) = map(int, input().split())
a = 1
b = 0
if y == 0 or (y == 1 and x > 0):
	print('No')
	exit()
else:
	a = a + a * (y - 1)
	b = b + y - 1
	x = x - b
	print('yes') if x % 2 == 0 and x >= 0 else print('No')


(x, y) = [int(i) for i in input().split()]
if x > y and y > 1:
	if (x - y) % 2 == 0:
		print('NO')
	else:
		print('YES')
elif x < y and y >= 1:
	if y - x == 1:
		print('YES')
	else:
		print('NO')
else:
	print('NO')


(c, o) = map(int, input().split())
if o == 0 or (o == 1 and c != 0):
	print('No')
else:
	o -= 1
	if c >= o and c - o & 1 == 0:
		print('Yes')
	else:
		print('No')


x = input()
(copy, original) = x.split()
copy = int(copy)
original = int(original)
if original == 0:
	print('NO')
elif original == 1 and copy > 0:
	print('NO')
elif copy > original:
	rest = copy - original - 1
	if rest % 2 != 0:
		print('NO')
	else:
		print('YES')
elif copy == original:
	print('NO')
elif original - 1 == copy:
	print('YES')
else:
	print('NO')


(x, y) = map(int, input().split())
if y == 0:
	print('NO')
elif y == 1:
	if x == 0:
		print('YES')
	else:
		print('NO')
else:
	onlycop = x - (y - 1)
	if x >= y - 1 and onlycop % 2 == 0:
		print('YES')
	else:
		print('NO')


import sys
(y, x) = map(int, input().split())
if x == 1 and y > 0 or x == 0 or (x > 1 and y == 0) or (y < x - 1):
	print('No')
	sys.exit()
if x % 2 == 1 and y % 2 == 0 or (x % 2 == 0 and y % 2 == 1):
	print('Yes')
else:
	print('No')


(a, b) = map(int, input().split())
if b == 0:
	print('no')
elif a == b:
	print('no')
elif a < b:
	if a + 1 == b:
		print('yes')
	else:
		print('no')
elif b == 1:
	if a:
		print('no')
	else:
		print('yes')
elif (a - b) % 2:
	print('yes')
else:
	print('no')


(n, m) = [int(i) for i in input().split()]
m -= 1
n -= m
if n < 0 or n % 2 != 0 or m < 0 or (m == 0 and n != 0):
	print('No')
else:
	print('Yes')


from sys import exit
(x, y) = map(int, input().split())
if y == 1:
	if x == 0:
		print('Yes')
	else:
		print('No')
	exit(0)
if y < 1:
	print('No')
	exit(0)
n = y - 1
if x - n < 0:
	print('No')
	exit(0)
if (x - n) % 2 == 0:
	print('Yes')
else:
	print('No')


a = list(input().split(' '))
(x, y) = (int(a[0]), int(a[1]))
if y == 0:
	print('No')
elif y == 1:
	if x == 0:
		print('Yes')
	else:
		print('No')
elif x - y + 1 >= 0 and (x - y + 1) % 2 == 0:
	print('Yes')
else:
	print('No')


import math
(a, b) = [int(i) for i in input().split()]
c = abs(b - 1 - a)
if a < b - 1:
	print('No')
elif b == 0 and a > 0:
	print('No')
elif b == 1 and a > 0:
	print('No')
elif c % 2 == 0 and b - 1 <= a:
	print('Yes')
else:
	print('No')


(x, y) = map(int, input().split())
res = x - y + 1 >= 0 and (x - y + 1) % 2 == 0 and (not (y - 1 <= 0 and x != 0))
print('YES' if res else 'NO')


(a, b) = map(eval, input().split())
if (a - b < -1) | (b == 0):
	print('No\n')
	exit()
if (b == 1) & (a > 0):
	print('No\n')
	exit()
b -= 1
c = a - b
if c % 2 == 0:
	print('Yes\n')
else:
	print('No\n')


(c, o) = map(int, input().split())
f = 1
if o == 0:
	f = 0
elif o == 1:
	if c:
		f = 0
	else:
		f = 1
else:
	d = o - 1
	while 1:
		if d > c:
			f = 0
			break
		if d == c:
			f = 1
			break
		else:
			d += 2
if f == 0:
	print('No')
else:
	print('Yes')


from sys import stdin, stdout
(a, b) = map(int, stdin.readline().split())
if not b:
	stdout.write('No')
elif b == 1:
	if not a:
		stdout.write('Yes')
	else:
		stdout.write('No')
else:
	cnt = a - b + 1
	if cnt < 0 or cnt & 1:
		stdout.write('No')
	else:
		stdout.write('Yes')


def y():
	print('Yes')

def n():
	print('No')
s = input()
s = s.split(' ')
(tc, to) = (int(s[0]), int(s[1]))
o = to - 1
mc = tc - o
if o < 0:
	n()
elif o == 0 and mc != 0:
	n()
elif mc < 0 or mc % 2 == 1:
	n()
else:
	y()


import sys, math
from collections import defaultdict, deque
input = sys.stdin.readline
(c, ot) = map(int, input().split())
if ot == 0 and c > 0:
	print('No')
elif ot == 1 and c > 0:
	print('No')
elif c < ot - 1:
	print('No')
elif ot % 2 == 0:
	print('Yes' if c % 2 == 1 else 'No')
else:
	print('Yes' if c % 2 == 0 else 'No')


(c, o) = map(int, input().split())
if o == 1 and c == 0:
	print('Yes')
elif o == 1:
	print('No')
elif o <= 0:
	print('No')
elif o - 1 > c:
	print('No')
elif o - 1 <= c:
	if (o - 1) % 2 == 0:
		if c % 2 == 0:
			print('Yes')
		else:
			print('No')
	elif (o - 1) % 2 != 0:
		if c % 2 != 0:
			print('Yes')
		else:
			print('No')


import sys
input = sys.stdin.buffer.readline
(x, y) = map(int, input().split())
if (x - y + 1) % 2 == 0 and x - y + 1 >= 0:
	if y == 0:
		print('No')
	elif y == 1:
		if x == 0:
			print('Yes')
		else:
			print('No')
	else:
		print('Yes')
else:
	print('No')


(x, y) = map(int, input().split())
if y == 1:
	if x == 0:
		print('Yes')
	else:
		print('No')
	exit(0)
if y == 0:
	print('NO')
	exit(0)
if x >= y - 1 and (x - y + 1) % 2 == 0:
	print('Yes')
else:
	print('No')


def problem_b():
	config = str(input()).split()
	(copy, ori) = (int(config[0]), int(config[1]))
	if ori <= 1 and copy > 0:
		return 'No'
	if copy - (ori - 1) < 0:
		return 'No'
	if (copy - (ori - 1)) % 2 == 0:
		return 'Yes'
	else:
		return 'No'
print(problem_b())


(c, o) = tuple(map(int, input().split()))

def sol(o, c):
	if c == 0:
		if o == 1:
			return 'yes'
		return 'no'
	if c == 1:
		if o == 2:
			return 'yes'
		return 'no'
	if c == 2:
		if o == 3:
			return 'yes'
		return 'no'
	if o == 1:
		if c == 0:
			return 'yes'
		return 'no'
	if c < o - 1:
		return 'No'
	if o == 0:
		return 'no'
	if c % 2 == o % 2:
		return 'no'
	return 'Yes'
print(sol(o, c))


(a, b) = list(map(int, input().strip().split()))
(x, y) = (b - 1, b)
if b <= 1 and a > 0:
	print('NO')
elif x % 2 == a % 2 and x <= a:
	print('YES')
else:
	print('NO')


mod = 1000000007
ii = lambda : int(input())
si = lambda : input()
dgl = lambda : list(map(int, input()))
f = lambda : map(int, input().split())
il = lambda : list(map(int, input().split()))
ls = lambda : list(input())
(x, y) = f()
if y == 0:
	print('No')
	exit()
if y == 1 and x != 0:
	print('No')
	exit()
if x < y - 1:
	print('No')
else:
	inx = y - 1
	if (x - inx) % 2 == 0 and (x - inx) // 2 <= x:
		print('Yes')
	else:
		print('No')


flag = 0
orig = ''
copy = ''
desire = input('')
for n in desire:
	if flag == 0:
		if n != ' ':
			copy = copy + n
		else:
			flag = 1
	else:
		orig = orig + n
copy = int(copy)
orig = int(orig)
if orig == 1:
	if copy == 0:
		print('Yes')
	else:
		print('No')
elif orig == 0:
	print('No')
elif copy >= orig - 1:
	if (copy - (orig - 1)) % 2 == 0:
		print('Yes')
	else:
		print('No')
else:
	print('No')


(x, y) = map(int, input().split())
print(('No', 'Yes')[y != 0 and (x - y == -1 or (x > y and y > 1 and (x % 2 != y % 2)))])


(a, b) = map(int, input().split())
if b - a > 1:
	print('No')
else:
	b -= 1
	a = a - b
	if a % 2 or b < 0 or (b == 0 and a > 0):
		print('No')
	else:
		print('Yes')


(x, y) = map(int, input().split())
yes = 'Yes'
no = 'No'
if y == 0:
	print(no)
	quit()
if y == 1:
	if x == 0:
		print(yes)
		quit()
	else:
		print(no)
		quit()
if x >= y - 1 and (x - y + 1) % 2 == 0:
	print(yes)
	quit()
else:
	print(no)
	quit()


(x, y) = list(map(int, input().split()))
if x > 0 and y == 1 or y == 0:
	print('No')
else:
	(a, b) = (y - 1, y)
	if a > x:
		print('No')
	else:
		print(('No', 'Yes')[(x - a) % 2 == 0])


import math
(y, x) = list(map(int, input().split(' ')))

def test_1(y, x):
	a = y - x + 1
	if x == 0:
		return 'No'
	if x == 1 and y != 0:
		return 'No'
	if a < 0:
		return 'No'
	else:
		b = a / 2 + 1
		if round(b / round(b), 10) == 1.0:
			return 'Yes'
		else:
			return 'No'
aa = test_1(y, x)
print(aa)


(x, y) = map(int, input().split())
if not y:
	print('NO')
	exit(0)
if not x:
	if y == 1:
		print('YES')
	else:
		print('NO')
	exit(0)
if y == 1:
	print('NO')
	exit(0)
if x % 2 != y % 2:
	if y - x > 1:
		print('NO')
	else:
		print('YES')
else:
	print('NO')


import sys
import math
import itertools
import collections

def getdict(n):
	d = {}
	if type(n) is list or type(n) is str:
		for i in n:
			if i in d:
				d[i] += 1
			else:
				d[i] = 1
	else:
		for i in range(n):
			t = ii()
			if t in d:
				d[t] += 1
			else:
				d[t] = 1
	return d

def cdiv(n, k):
	return n // k + (n % k != 0)

def ii():
	return int(input())

def mi():
	return map(int, input().split())

def li():
	return list(map(int, input().split()))

def lcm(a, b):
	return abs(a * b) // math.gcd(a, b)

def wr(arr):
	return ' '.join(map(str, arr))

def revn(n):
	return int(str(n)[::-1])

def prime(n):
	if n == 2:
		return True
	if n % 2 == 0 or n <= 1:
		return False
	sqr = int(math.sqrt(n)) + 1
	for d in range(3, sqr, 2):
		if n % d == 0:
			return False
	return True
(x, y) = mi()
if y < 1 or x + 1 < y or (x - y) % 2 == 0 or (x != 0 and y == 1):
	print('NO')
else:
	print('YES')


import sys
f = sys.stdin
(x, y) = map(int, f.readline().split())
if y > 0 and x >= y - 1 and ((x - y + 1) % 2 == 0):
	if x > 0 and y == 1:
		print('No')
	else:
		print('Yes')
else:
	print('No')


(x, y) = map(int, input().split())
o = y - 1
c = x - o
if y == 0 or (y == 1 and x > 0):
	print('No')
elif c % 2 == 0 and c >= 0:
	print('Yes')
else:
	print('No')


def main():
	(X, Y) = map(int, input().split())
	if not Y:
		print('No')
	elif Y == 1 and X > 0:
		print('No')
	elif X < Y - 1:
		print('No')
	elif Y - 1 & 1 == X & 1:
		print('Yes')
	else:
		print('No')
main()


(a, b) = map(int, input().split())
if a - (b - 1) > -1 and (a - (b - 1)) % 2 == 0 and (b != 0) and (not (b == 1 and a != 0)):
	print('YES')
else:
	print('NO')


import math

def function(x, y):
	if x == 0 and y == 1:
		return 'Yes'
	y -= 1
	if y <= 0:
		return 'No'
	if y > x:
		return 'No'
	if x >= y:
		x -= y
		if x < 0:
			return 'No'
		if x % 2 == 0:
			return 'Yes'
		if x % 2 != 0:
			return 'No'
(x, y) = map(int, input().rstrip().split())
print(function(x, y))


(x, y) = [int(i) for i in input().split()]
if x >= y - 1 and (x - y + 1) % 2 == 0 and (y > 0) and (x > y - 2):
	if y == 1 and x > 0:
		print('no')
	else:
		print('yes')
else:
	print('no')


(y, x) = [int(i) for i in input().strip().split()]
if y == x - 1:
	print('Yes')
elif y < x - 1:
	print('No')
else:
	valid = abs(y - (x - 1)) % 2 == 0 and x - 1 > 0
	print('Yes' if valid else 'No')


(m, n) = map(int, input().split())
if m >= n - 1 and n:
	if m == n - 1:
		print('Yes')
	elif n - 1 and (m - n + 1) % 2 == 0:
		print('Yes')
	else:
		print('No')
else:
	print('No')


IL = lambda : list(map(int, input().split()))
I = lambda : int(input())
(x, y) = IL()
print('No' if y == 0 or x < y - 1 or (x - y + 1) % 2 or (y == 1 and x) else 'Yes')


(x, y) = map(int, input().split())
if x == 0 and y == 1:
	print('Yes')
	quit(0)
k = y - 2
if k >= 0 and x - k - 1 >= 0 and ((x - k - 1) % 2 == 0):
	print('Yes')
else:
	print('No')


(n, k) = map(int, input().split())
print('No' if abs(n - k) % 2 == 0 or k - n > 1 or k == 0 or (k == 1 and n > 0) else 'Yes')


def main():
	(y, x) = input().split()
	oGoal = int(x)
	cGoal = int(y)
	if cGoal < oGoal - 1:
		return 'no'
	if cGoal > 0 and oGoal == 1:
		return 'no'
	if oGoal < 1:
		return 'no'
	oGoal -= 1
	cGoal -= oGoal
	if cGoal % 2 == 0:
		return 'yes'
	else:
		return 'no'
out = main()
print(out)


(x, y) = map(int, input().split())

def check():
	global x, y
	if y == 0:
		return False
	if y == 1:
		return x == 0
	if x < y - 1:
		return False
	x -= y - 1
	if x & 1:
		return False
	else:
		return True
	pass
print('Yes' if check() else 'No')


def main():
	(x, y) = map(int, input().split())
	print('Yes' if x - y + 1 >= 0 and (x - y + 1) % 2 == 0 and (y > 1) or (x == 0 and y == 1) else 'No')
main()


(n, m) = map(int, input().split())
if (n - m - 1) % 2 == 0 and n >= m - 1 and (m > 1):
	print('YES')
elif m == 1 and n == 0:
	print('YES')
else:
	print('NO')


[copies, originals] = input().split()
copies = int(copies)
originals = int(originals)
if originals < 1:
	print('No')
elif originals == 1 and copies > 0:
	print('No')
elif originals > copies + 1:
	print('No')
elif (copies - originals) % 2 == 0:
	print('No')
else:
	print('Yes')


(copied, original) = list(map(int, input().split()))
(o, c) = (1, 0)
while True:
	if o + 10000 < original and c + 10000 < copied:
		(o, c) = (o + 10000, c + 10000)
	elif o < original and c < copied:
		(o, c) = (o + 1, c + 1)
	elif o == original and c + 2000 < copied and (c != 0):
		c += 2000
	elif o == original and c < copied and (c != 0):
		c += 2
	else:
		break
if o == original and c == copied:
	print('Yes')
else:
	print('No')


(x, y) = map(int, input().split(' '))
originial_req = y - 1
copies_req = x - y + 1
originial_req = 0
ans = 'No'
if copies_req == 0:
	ans = 'Yes'
elif copies_req < 0:
	ans = 'No'
elif y - 1 > 0 and copies_req % 2 == 0:
	ans = 'Yes'
print(ans)


(a, b) = map(int, input().split())
n = b - 1
if a >= n and (a - n) % 2 == 0 and (b > 0):
	m = (a - n) // 2
	if n == 0 and m > 0:
		print('No')
	else:
		print('Yes')
else:
	print('No')


(x, y) = map(int, input().split())
res = False
if y == 0:
	pass
elif y == 1:
	if x == 0:
		res = True
elif x + 1 == y:
	res = True
elif x > y and (x - y) % 2 == 1:
	res = True
print('Yes' if res else 'No')


import sys
(clone, orig) = map(int, input().split())
if orig == 0:
	print('No')
	sys.exit(0)
if orig == 1 and clone > 0:
	print('No')
	sys.exit(0)
clone -= orig - 1
if clone < 0 or clone % 2:
	print('No')
else:
	print('Yes')


data = input().split()
y = int(data.pop())
x = int(data.pop())
n = y // 2
if y % 2 == 0:
	z = 2 * (n - 1) + 1
	x -= z
else:
	x -= n * 2
if x > y and y == 1:
	print('No')
elif x % 2 == 0 and x >= 0 and (y != 0):
	print('Yes')
else:
	print('No')


def calc(x, y):
	if y == 0 and x != 0:
		return False
	x1 = 0
	y1 = 1
	x1 += y - 1
	y1 = y
	if x1 == 0 and x != x1:
		return False
	if x >= x1 and (x - x1) % 2 == 0 and (x == x):
		return True
	return False
(x, y) = input().split(' ')
x = int(x)
y = int(y)
if calc(x, y):
	print('Yes')
else:
	print('No')


s = input()
mas = s.split(' ')
if int(mas[1]) == 0:
	print('No')
else:
	k = int(mas[0]) - (int(mas[1]) - 1)
	if k < 0:
		print('No')
	elif (int(mas[1]) == 1) & (int(mas[0]) == 0):
		print('Yes')
	elif (int(mas[1]) == 1) & (int(mas[0]) > 0):
		print('No')
	elif k % 2 == 0:
		print('Yes')
	else:
		print('No')


(n, m) = [int(x) for x in input().split()]
needed = n - m + 1
if needed & 1 or needed < 0 or m == 0 or (m == 1 and n > 0):
	print('No')
else:
	print('Yes')


import sys
firstline = sys.stdin.readline().split(' ')
x = int(firstline[0])
y = int(firstline[1])
if y < 1 or (y == 1 and x > 0):
	print('No')
elif x < y - 1:
	print('No')
elif x > y - 1 and (x - y + 1) % 2 != 0:
	print('No')
else:
	print('Yes')


(y, x) = map(int, input().split())
o = 1
c = 0
flag = False
if x >= o:
	o = x
	c = x - 1
	if c > y:
		flag = False
	elif c == y:
		flag = True
	elif c > 0:
		d = y - c
		if d % 2 == 0:
			flag = True
		else:
			flag = False
	else:
		flag = False
print('Yes' if flag else 'NO')


from sys import stdin, stdout
(x, y) = map(int, stdin.readline().split())
x = x - y + 1
if y == 0 or (y == 1 and x != 0) or x < 0 or x % 2:
	print('No')
else:
	print('Yes')


slic = input('')
l = []
l = slic.split(' ')
flag = 0
x = int(l[0])
y = int(l[1])
if y == 1 and x == 0:
	print('YES')
elif (x - y - 1) % 2 == 0 and y - 1 <= x and (y != 0) and (y != 1):
	print('YES')
else:
	print('NO')


import collections
R = lambda : map(int, input().split())
(x, y) = R()
tx = y - 1
if y == 1:
	if x != 0:
		exit(print('No'))
	else:
		exit(print('Yes'))
if y == 0:
	exit(print('No'))
if x >= tx and (x - tx) % 2 == 0:
	exit(print('Yes'))
print('No')


def f(x, y):
	if y == 0:
		return 'NO'
	elif y == 1 and x == 0:
		return 'YES'
	elif y == 1 and x > 0:
		return 'NO'
	if x - y + 1 >= 0 and (x - y + 1) % 2 == 0:
		return 'YES'
	else:
		return 'NO'
(x, y) = map(int, input().split())
print(f(x, y))


import sys
inp = sys.stdin.readline()[:-1].split(' ')
cop = int(inp[0])
orig = int(inp[1])
ans = 'No'
if orig != 0:
	if cop == 0 and orig == 1:
		ans = 'Yes'
	else:
		cop = cop - orig + 1
		if cop >= 0:
			if cop % 2 == 0:
				ans = 'Yes'
		if orig == 1 and cop > 0:
			ans = 'No'
print(ans)


import sys
from math import log, sqrt, factorial

def ii():
	return int(input())

def si():
	return input()

def mi():
	return map(int, input().strip().split(' '))

def msi():
	return map(str, input().strip().split(' '))

def li():
	return list(mi())
t = 1
while t:
	t -= 1
	(c, o) = mi()
	if c == 0 and o == 1:
		print('Yes')
	elif o > 1 and c >= o - 1 and abs(c - o) % 2:
		print('Yes')
	else:
		print('No')


(x, y) = map(int, input().split())
xl = x
fs = y - 1
if (x, y) == (0, 1):
	print('yes')
	quit()
if y - 1 <= 0:
	print('no')
	quit()
xl -= fs
if xl < 0:
	print('no')
	quit()
print(['yes', 'no'][xl % 2])


(z, zz, dgraphs, mod) = (input, lambda : list(map(int, z().split())), {}, 10 ** 9 + 7)
from string import *
from collections import *
from queue import *
from sys import *
from collections import *
from math import *
from heapq import *
from itertools import *
from bisect import *
from collections import Counter as cc
from math import factorial as f

def lcd(xnum1, xnum2):
	return xnum1 * xnum2 // gcd(xnum1, xnum2)

def prime(x):
	p = ceil(x ** 0.5) + 1
	for i in range(2, p):
		if x % i == 0 and x != 2:
			return 0
	return 1

def dfs(u, visit, graph):
	visit[u] = True
	for i in graph[u]:
		if not visit[i]:
			dfs(i, visit, graph)
(a, b) = zz()
(x, y) = (a, b)
if b < 1 or (b == 1 and x > 0) or a + 1 < y or (x - y - 1) % 2:
	print('NO')
else:
	print('YES')


(x, y) = [int(i) for i in input().split()]
a = y
b = a - 1
if y == 1:
	if x > 0:
		print('No')
	else:
		print('Yes')
elif x < b or y < 1 or (x - b) % 2 == 1:
	print('No')
else:
	print('Yes')


(X, Y) = input().split()
(X, Y) = [int(X), int(Y)]
if X % 2 == 0 and Y % 2 == 0 or (X % 2 != 0 and Y % 2 != 0) or X < Y - 1 or (Y == 0) or (Y == 1 and X != 0):
	print('No')
else:
	print('Yes')


(x, y) = map(int, input().split())
if y == 0:
	print('No')
elif y == 1 and x == 0:
	print('Yes')
elif y == 1 and x != 0:
	print('no')
elif x + 1 < y or abs(x - y) % 2 == 0:
	print('No')
else:
	print('Yes')


(co, og) = map(int, input().split())
if og == 0:
	print('NO')
elif og == 1:
	if co == 0:
		print('YES')
	else:
		print('NO')
elif og - co > 1:
	print('NO')
elif (co - og - 1) % 2 == 0:
	print('YES')
else:
	print('NO')


(co, ori) = map(int, input().split())
if ori == 1 and co == 0:
	print('YES')
elif ori == 1 and co != 0:
	print('NO')
elif ori == 0:
	print('NO')
elif co == ori - 1:
	print('YES')
elif co > ori and (co - (ori - 1)) % 2 == 0:
	print('YES')
else:
	print('NO')


import sys
from bisect import *
from math import floor, sqrt, ceil, factorial as F, gcd, pi
from itertools import chain, combinations, permutations, accumulate
from collections import Counter, defaultdict, OrderedDict, deque
from array import array
INT_MAX = sys.maxsize
INT_MIN = -sys.maxsize - 1
mod = 1000000007
ch = 'abcdefghijklmnopqrstuvwxyz'
lcm = lambda a, b: a * b // gcd(a, b)
setbit = lambda x: bin(x)[2:].count('1')
input = lambda : sys.stdin.readline()

def solve():
	(x, y) = map(int, sys.stdin.readline().split())
	if y - 1 > 0:
		if x - y + 1 >= 0 and (x - y + 1) % 2 == 0:
			print('YES')
		else:
			print('NO')
	elif y == 1:
		if x == 0:
			print('YES')
		else:
			print('NO')
	else:
		print('NO')
try:
	sys.stdin = open('input.txt', 'r')
	sys.stdout = open('output.txt', 'w')
except:
	pass
solve()


str = input()
s = str.split()
n = int(s[0])
m = int(s[1])
if n == 0 and m > 1 or n - m + 1 < 0 or (m == 0 or (m == 1 and n > 0)):
	print('No')
elif n == 0 and m == 0:
	print('No')
else:
	n = n - m + 1
	if n % 2 == 0:
		print('Yes')
	else:
		print('No')


(c, o) = map(int, input().split())
if o == 1 and c > 0:
	print('NO')
elif (c - (o - 1)) % 2 == 0 and o - 1 <= c and (o > 0):
	print('YES')
else:
	print('NO')


(n, k) = map(int, input().split())
if k == 0 or (k == 1 and n > 0):
	print('NO')
elif k == 1 and n == 0:
	print('YES')
elif n - k + 1 < 0:
	print('NO')
elif (n - k + 1) % 2 == 0:
	print('YES')
else:
	print('NO')


import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, copy, functools
sys.setrecursionlimit(10 ** 7)
from sys import stdin, stdout
input = stdin.readline

def MAP():
	return map(int, input().split())

def LI():
	return list(map(int, sys.stdin.readline().split()))

def list2d(a, b, c):
	return [[c] * b for i in range(a)]

def NO():
	print('No')

def YES():
	print('Yes')

def main():
	(cpy, org) = MAP()
	if org == 0:
		NO()
	elif org == 1 and cpy == 0:
		YES()
	else:
		tmp = org - 1
		if tmp <= cpy and tmp != 0:
			if tmp % 2 == 0 and cpy % 2 == 0 or (tmp % 2 == 1 and cpy % 2 == 1):
				YES()
			else:
				NO()
		else:
			NO()
main()


(a, b) = input().split(' ')
(copies, original) = (int(a), int(b) - 1)
copies -= original
if copies < 0 or copies % 2 == 1 or original == -1 or (original == 0 and copies > 0):
	print('No')
else:
	print('Yes')


def solve():
	(x, y) = input().split()
	x = int(x)
	y = int(y)
	if y < 2 and x > 0:
		print('NO')
	else:
		an = x - y + 1
		if an < 0:
			print('NO')
		elif an // 2 <= x and an % 2 == 0:
			print('YES')
		else:
			print('NO')
T = 1
for _ in range(1, T + 1):
	solve()


(x, y) = map(int, input().split())
if y == x:
	print('No')
elif y > x:
	if y - x == 1:
		print('Yes')
	else:
		print('No')
else:
	n = y - 1
	if n > 0:
		l1 = x - n
		if l1 % 2 == 0:
			print('Yes')
		else:
			print('No')
	else:
		print('No')


import sys
(c, o) = list(map(int, input().split()))
if o == 0 or o - c > 1 or (o < 2 and c > 0) or ((c - o) % 2 == 0):
	print('NO')
	sys.exit()
print('YES')


(copied, original) = map(int, input().split())
copied = copied - original + 1
if original == 1 and copied != 0:
	print('No')
elif copied >= 0 and original > 0 and (copied % 2 == 0):
	print('Yes')
else:
	print('No')


import math as mt
import itertools as it
import functools as ft
stdin = lambda type_='int', sep=' ': list(map(eval(type_), input().split(sep)))
joint = lambda sep=' ', *args: sep.join((str(i) if type(i) != list else sep.join(map(str, i)) for i in args))
(x, y) = stdin()
if y == 0:
	print('No')
elif y == 1:
	print('No' if x != 0 else 'Yes')
else:
	x -= y - 1
	if x % 2 == 0 and x >= 0:
		print('Yes')
	else:
		print('No')


from sys import exit
(y, x) = [int(i) for i in input().split()]
fr = x - 1
if x == 0:
	print('NO')
	exit(0)
if x == 1 and y > 0:
	print('NO')
	exit(0)
if fr > y:
	print('NO')
	exit(0)
y -= fr
if y % 2 == 0:
	print('YES')
else:
	print('NO')


(c, o) = list(map(int, input().strip().split()))
if o == 0:
	print('No')
elif o == 1:
	if c == 0:
		print('Yes')
	else:
		print('No')
elif c > o - 1:
	extra = c - (o - 1)
	if extra % 2 == 0:
		print('Yes')
	else:
		print('No')
elif c == o - 1:
	print('Yes')
else:
	print('No')


import sys
from math import log, sqrt, factorial

def ii():
	return int(input())

def si():
	return input()

def mi():
	return map(int, input().strip().split(' '))

def msi():
	return map(str, input().strip().split(' '))

def li():
	return list(mi())

def read():
	sys.stdin = open('input1.txt', 'r')
	sys.stdout = open('output1.txt', 'w')
	input = sys.stdin.readline

def main():
	t = 1
	while t:
		t -= 1
		(c, o) = mi()
		if c == 0 and o == 1:
			print('Yes')
		elif o > 1 and c >= o - 1 and abs(c - o) % 2:
			print('Yes')
		else:
			print('No')
main()


j = list(map(int, input().split()))
y = j[0]
x = j[1]
a = 0
b = 0
g = 1
if x == 1 and y > 0:
	print('NO')
	g = 0
if g == 1:
	if x == 0 or (y == 0 and x > 1):
		print('NO')
		g = 0
if g == 1:
	if y < x - 1:
		print('NO')
		g = 0
if g == 1:
	if (y - (x - 1)) % 2 == 0:
		print('YES')
	else:
		print('NO')
		g = 0


(a, b) = map(int, input().split())
if b == 0:
	print('No')
	exit(0)
elif b == 1:
	if a == 0:
		print('Yes')
	else:
		print('No')
	exit(0)
else:
	x = b - 1
	if a >= x and (a - b + 1) % 2 == 0:
		print('Yes')
	else:
		print('No')


import sys
f = sys.stdin.read()
(x, y) = f.split()
(x, y) = (int(x), int(y))
if x >= y - 1 and (x + y) % 2 == 1 and (x >= 0) and (y >= 2) or (x == 0 and y == 1):
	sys.stdout.write('Yes')
else:
	sys.stdout.write('No')


NO = 'No'
YES = 'Yes'
n = input().split()
(x, y) = (int(n[0]), int(n[1]))
if y == 0:
	print(NO)
else:
	n = y - 1
	if n == 0:
		if x == 0:
			print(YES)
		else:
			print(NO)
	elif (x - n) % 2 == 0 and x - n >= 0:
		print(YES)
	else:
		print(NO)


import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, copy, functools
sys.setrecursionlimit(10 ** 7)
inf = 10 ** 20
eps = 1.0 / 10 ** 10
mod = 998244353
dd = [(-1, 0), (0, 1), (1, 0), (0, -1)]
ddn = [(-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1), (0, -1), (-1, -1)]

def LI():
	return list(map(int, sys.stdin.readline().split()))

def LLI():
	return [list(map(int, l.split())) for l in sys.stdin.readlines()]

def LI_():
	return [int(x) - 1 for x in sys.stdin.readline().split()]

def LF():
	return [float(x) for x in sys.stdin.readline().split()]

def LS():
	return sys.stdin.readline().split()

def I():
	return int(sys.stdin.readline())

def F():
	return float(sys.stdin.readline())

def S():
	return input()

def pf(s):
	return print(s, flush=True)

def pe(s):
	return print(str(s), file=sys.stderr)

def JA(a, sep):
	return sep.join(map(str, a))

def main():
	(n, m) = LI()
	if m < 1:
		return 'No'
	if m == 1 and n > 0:
		return 'No'
	t = n - m + 1
	if t < 0 or t % 2 == 1:
		return 'No'
	return 'Yes'
print(main())


(rc, ro) = map(int, input().split())
o = 1
c = 0
if ro == 0 or (ro == 1 and rc > 0):
	print('No')
	exit()
else:
	o = o + o * (ro - 1)
	c = c + ro - 1
	rc = rc - c
	print('Yes') if rc % 2 == 0 and rc >= 0 else print('No')


n = input().split()
(x, y) = (int(n[0]), int(n[1]))
if y == 0:
	print('NO')
elif y == 1 and x == 0:
	print('YES')
elif y == 1:
	print('NO')
else:
	a = y - 1
	if (x - a) % 2 == 0 and x - a >= 0:
		print('YES')
	else:
		print('NO')


s = input()
x = s.split()
y = int(x[1])
x = int(x[0])
t = x - (y - 1)
if y <= 1 and x > 0:
	print('No')
elif t >= 0 and t % 2 == 0:
	print('Yes')
else:
	print('No')


def test(x, y):
	if y == 0:
		return 'No'
	xe = y - 1
	if xe > x:
		return 'No'
	elif xe == x:
		return 'Yes'
	elif xe == 0:
		return 'No'
	else:
		t1 = xe % 2
		t2 = x % 2
		if t1 and t2:
			return 'Yes'
		elif t1 == 0 and t2 == 0:
			return 'Yes'
		else:
			return 'No'
print(test(*map(int, input().split())))


import sys, itertools, math, collections, random

def ia():
	return [int(i) for i in sys.stdin.readline().strip().split(' ')]

def ii():
	return int(sys.stdin.readline().strip())

def istr():
	return sys.stdin.readline().strip()
(x, y) = ia()
o = 1
c = 0
if y < o:
	print('No')
else:
	c = y - o
	d = x - c
	if c > x or (c <= 0 and d > 0):
		print('No')
	elif d % 2 == 0:
		print('Yes')
	else:
		print('No')


(n, m) = map(int, input().split())
m -= 1
if m < 0 or (m == 0 and n > 0):
	(print('No'), exit())
if n >= m:
	n -= m
	if n % 2 == 0:
		print('Yes')
	else:
		print('No')
else:
	print('No')


(x, y) = map(int, input().split())
k = y - 1
f = 1
if (k == 0 or y == 0) and x > 0:
	f = 0
elif k > x:
	f = 0
elif k < x and x % 2 != k % 2:
	f = 0
if f:
	print('Yes')
else:
	print('No')


(x, y) = map(int, input().split())
z = x - (y - 1)
if z < 0 or y == 0:
	print('No')
elif y == 1:
	if x == 0:
		print('Yes')
	else:
		print('No')
elif z % 2 == 0:
	print('Yes')
else:
	print('No')


def main():
	(y, x) = map(int, input().split())
	if x == 1 and y == 0:
		print('Yes')
		return
	if x < 1:
		print('No')
		return
	if x - y > 1:
		print('No')
		return
	if (x + y) % 2 == 0:
		print('No')
		return
	if x == 1 and y == 1:
		print('No')
	if x == 1 and y > 0:
		print('No')
		return
	print('Yes')
main()


(x, y) = tuple(map(lambda x: int(x), input().split()))
yes = 'Yes'
no = 'No'
res = yes
if y == 0:
	res = no
elif y == 1 and x != 0:
	res = no
elif x < y - 1:
	res = no
elif (x - y + 1) % 2 != 0:
	res = no
else:
	res = yes
print(res)


def cloing(copy, orig):
	if orig < 1:
		return False
	copyOrig = orig - 1
	if copyOrig > copy:
		return False
	if copyOrig == 0 and copy > 0:
		return False
	copy = copy - copyOrig
	return copy % 2 == 0

def test():
	print(cloing(6, 3))
	print(cloing(4, 2) == False)
	print(cloing(1000, 1001))
	print(cloing(2, 1) == False)

def nia():
	s = input()
	while len(s) == 0:
		s = input()
	s = s.split()
	iVal = []
	for i in range(len(s)):
		iVal.append(int(s[i]))
	return iVal

def solve():
	arr = nia()
	if cloing(arr[0], arr[1]):
		print('Yes')
	else:
		print('No')
solve()


(y, x) = input().split(' ')

def calc(o, c):
	if not o or o - 1 > c or (o == 1 and c != 0) or (c < 0) or (o <= 0):
		return print('No')
	if (c - o + 1) % 2:
		print('No')
	else:
		print('Yes')
calc(int(x), int(y))


buf = input().split()
(copy, original) = (int(buf[0]), int(buf[1]))
n = copy + original
if original == 1 and copy == 0:
	print('YES')
	exit(0)
if original == 0 or copy == 0:
	print('NO')
	exit(0)
if original == 1 and copy != 0:
	print('NO')
	exit(0)
mincopy = original - 1
if copy < mincopy:
	print('NO')
	exit(0)
if copy > mincopy and (copy - mincopy) % 2 == 1:
	print('NO')
	exit(0)
print('YES')


str = input().split()
copy = int(str[0])
orig = int(str[1])
now = orig - 1
if orig > 0 and copy >= now and ((copy - now) % 2 == 0) and (now > 0 or copy == 0):
	print('Yes')
else:
	print('No')


rd = lambda : map(int, input().split())
(n, m) = rd()
if m == 1:
	if n == 0:
		print('Yes')
	else:
		print('No')
else:
	m = m - 1
	n = n - m
	print('Yes' if n % 2 == 0 and n >= 0 and (m >= 0) else 'No')


x = input().split()
cop = int(x[0])
org = int(x[1])
if cop < org - 1:
	print('No')
elif org < 1:
	print('No')
elif org == 1 and cop != 0:
	print('No')
else:
	copex = org - 1
	rem = cop - copex
	if rem % 2 == 0:
		print('Yes')
	else:
		print('No')


(copies, original) = map(int, input().split())
if original == 0:
	print('No')
else:
	original_gen = original - 1
	copies_gen = original_gen
	if copies == 0 and copies_gen != 0 or (copies_gen == 0 and copies != 0):
		print('No')
	elif copies_gen <= copies and (copies - copies_gen) % 2 == 0:
		print('Yes')
	else:
		print('No')


import sys, math, bisect
from random import randint
inf = float('inf')
mod = 10 ** 9 + 7

def lcm(a, b):
	return int(a / math.gcd(a, b) * b)

def gcd(a, b):
	return int(math.gcd(a, b))

def tobinary(n):
	return bin(n)[2:]

def binarySearch(a, x):
	i = bisect.bisect_left(a, x)
	if i != len(a) and a[i] == x:
		return i
	else:
		return -1

def lowerBound(a, x):
	i = bisect.bisect_left(a, x)
	if i:
		return i - 1
	else:
		return -1

def upperBound(a, x):
	i = bisect.bisect_right(a, x)
	if i != len(a) + 1 and a[i - 1] == x:
		return i - 1
	else:
		return -1

def primesInRange(n):
	ans = []
	prime = [True for i in range(n + 1)]
	p = 2
	while p * p <= n:
		if prime[p] == True:
			for i in range(p * p, n + 1, p):
				prime[i] = False
		p += 1
	for p in range(2, n + 1):
		if prime[p]:
			ans.append(p)
	return ans

def primeFactors(n):
	factors = []
	while n % 2 == 0:
		factors.append(2)
		n = n // 2
	for i in range(3, int(math.sqrt(n)) + 1, 2):
		while n % i == 0:
			factors.append(i)
			n = n // i
	if n > 2:
		factors.append(n)
	return factors

def isPrime(n, k=5):
	if n < 2:
		return True
	for i in range(0, k):
		a = randint(1, n - 1)
		if pow(a, n - 1, n) != 1:
			return False
	return True
from collections import deque, defaultdict, Counter
import heapq, string
for _ in range(1):
	(copy, orignal) = map(int, input().split())
	if orignal == 1 and copy == 0:
		print('Yes')
	elif orignal == 1 and copy != 0:
		print('No')
	elif orignal == 0:
		print('No')
	elif copy >= orignal - 1 and (copy - orignal + 1) % 2 == 0:
		print('Yes')
	else:
		print('No')


(copy, orig) = map(int, input().split())
if orig == 0:
	print('No')
elif orig == 1:
	print('Yes' if copy == 0 else 'No')
else:
	copycnt = orig - 1
	print('Yes' if copy >= copycnt and (copy - copycnt) % 2 == 0 else 'No')


import sys
word = input().split(' ')
(copies_desired, originals_desired) = (int(word[0]), int(word[1]))
originals_to_make = originals_desired - 1
if originals_to_make <= 0 and copies_desired != 0:
	print('No')
else:
	copies_to_produce = copies_desired - originals_to_make
	if copies_to_produce < 0 or copies_to_produce % 2 == 1:
		print('No')
	elif copies_to_produce % 2 == 0:
		print('Yes')


(A, B) = input().split()
a = int(A)
b = int(B)
copies = b - 1
original = b - 1
if b == 0:
	print('No')
elif b == 1:
	if a == 0:
		print('Yes')
	else:
		print('No')
elif a - copies >= 0 and (a - copies) % 2 == 0:
	print('Yes')
else:
	print('No')


n = input().split()
x = int(n[0])
y = int(n[1])
flag = 'Yes'
if y == 0 or (y == 1 and x > 0):
	flag = 'No'
x_ = y - 1
if x_ > x:
	flag = 'No'
if not (x - x_) % 2 == 0:
	flag = 'No'
print(flag)


(c, o) = [int(i) for i in input().split()]
if o >= 2 and o % 2 == 0 and (c >= o - 1) and (c % 2 != 0):
	print('yes')
elif o >= 3 and o % 2 != 0 and (c >= o - 1) and (c % 2 == 0):
	print('yes')
elif o == 1 and c == 0:
	print('yes')
else:
	print('no')


def main():
	(x, y) = map(int, input().split())
	print(('No', 'Yes')[(x > 1) < y < x + 2 and x - y & 1])
main()


from sys import stdin, stdout
Input = []
Input = [stdin.readlines()]
Input = Input[0]
Input = [x.split(' ') for x in Input]
x = int(Input[0][0])
y = int(Input[0][1])
if (x - y) % 2 == 1 and x - y >= -1 and (not (x > 0 and y == 1)) and (y > 0):
	stdout.write('Yes')
else:
	stdout.write('No')


def main():
	(x, y) = map(int, input().split())
	if y == 0:
		return 'No'
	n_copies = y - 1
	if n_copies > x:
		return 'No'
	if n_copies == 0:
		if x > 0:
			return 'No'
		else:
			return 'Yes'
	if (x - n_copies) % 2 == 0:
		return 'Yes'
	else:
		return 'No'
ret = main()
print(ret)


def orig_copies(x, y):
	(x1, y1) = (y, y - 1)
	if y1 == 0 and x > 0:
		return 'No'
	elif y1 > 0 and (x - y1) % 2 == 1:
		return 'No'
	elif y == 0:
		return 'No'
	elif x - y1 < 0:
		return 'No'
	return 'Yes'
(X, Y) = [int(i) for i in input().split()]
print(orig_copies(X, Y))


(x, y) = input().split()
x = int(x)
y = int(y)
if y == 0 and x >= 0:
	print('No')
elif x == y - 1:
	print('yes')
elif x == y:
	print('No')
elif y == 1 and x > 0:
	print('No')
elif x > y:
	copy = y - 1
	if (x - copy) % 2 == 0:
		print('Yes')
	else:
		print('No')
elif x < y - 1:
	print('No')


class Point:

	def __init__(self, o, c):
		self.o = o
		self.c = c
s1 = input()
p = Point(int(s1[s1.index(' ') + 1:]), int(s1[:s1.index(' ')]))
q = Point(1, 0)
diff = Point(p.o - q.o, p.c - q.c)
M2 = (diff.c - diff.o) // 2
if M2 < 0 or p.o == 0:
	print('No')
	exit()
elif p.o == 1:
	if p.c == 0:
		print('Yes')
		exit()
	else:
		print('No')
		exit()
elif 2 * M2 + diff.o == diff.c:
	print('Yes')
	exit()
else:
	print('No')
	exit()


import sys
(n, m) = input().split(' ')
n = int(n)
m = int(m)
m -= 1
if m <= 0 and n > 0:
	print('No')
elif m > n:
	print('No')
elif (n - m) % 2 != 0:
	print('No')
else:
	print('Yes')


(x, y) = map(int, input().strip().split())
k1 = y - 1
if (x - k1) % 2 == 0:
	k2 = (x - k1) / 2
	if k2 > 0 and k1 > 0 or k2 == 0:
		print('Yes')
		exit(0)
print('No')


(y, x) = map(int, input().strip().split(' '))
m = y - x + 1
if x < 2:
	print('No' if x == 0 or y != 0 else 'Yes')
else:
	print('No' if m & 1 or m < 0 else 'Yes')


(x, y) = [int(i) for i in input().split()]
if x > y:
	o = y - 1
	if o > 0:
		c = x - o
		if c % 2 == 0:
			print('Yes')
		else:
			print('No')
	else:
		print('No')
if y > x:
	if y - x == 1:
		print('Yes')
	else:
		print('No')
if x == y:
	if x == 0 and y == 0:
		print('No')
	else:
		print('No')


from sys import stdin, stdout
(x, y) = map(int, stdin.readline().split())
y = y - 1
if y > x:
	stdout.write('No\n')
elif y + 1 == 0 or (x > 0 and y + 1 == 1):
	stdout.write('No\n')
else:
	x = x - y
	if x % 2 == 0:
		stdout.write('Yes\n')
	else:
		stdout.write('No\n')


(x, y) = input().split()
x = int(x)
y = int(y)
if y == 0:
	print('No')
elif y == 1 and x > 0:
	print('No')
else:
	s1 = y - 1
	copy = s1
	if copy > x:
		print('No')
	else:
		rcopy = x - s1
		s2 = rcopy / 2
		if s2.is_integer():
			print('Yes')
		else:
			print('No')


(x, y) = map(int, input().split())
if (y > 1 or (not x and y != 1)) and x >= y - 1 and (x - y) % 2 or (not x and y == 1):
	print('Yes')
else:
	print('No')


(nc, no) = map(int, input().split())
if nc + 1 - no < 0 or no == 0 or (no == 1 and nc > 0):
	print('No')
elif (nc + 1 - no) % 2 == 0:
	print('Yes')
else:
	print('No')


(x, y) = list(map(int, input().split()))
tot = (x + y) // 2
print('Yes' if (x + y) % 2 == 1 and 0 <= y - 1 <= tot and (x == y - 1 + 2 * (tot - y + 1)) and ((y == 1) == (tot == 0)) else 'No')


a = list(map(int, input().split()))
if a[1] == 1:
	if a[0] == 0:
		print('Yes')
	else:
		print('No')
elif a[1] > 1 and a[1] % 2 == 0 and (a[0] - a[1] >= -1):
	if a[0] % 2 != 0:
		print('Yes')
	else:
		print('No')
elif a[1] > 1 and a[1] % 2 != 0 and (a[0] - a[1] >= -1):
	if a[0] % 2 == 0:
		print('Yes')
	else:
		print('No')
else:
	print('No')


(copy, ori) = [int(x) for x in input().split()]
if ori == 0:
	print('No')
else:
	cori = ori
	ccopy = ori - 1
	if copy == ccopy:
		print('Yes')
	elif ori - 1 > copy:
		print('No')
	elif abs(ccopy - copy) % 2 == 0 and ccopy != 0:
		print('Yes')
	else:
		print('No')


(copy, org) = [int(x) for x in input().split()]
a = org - 1
if org == 1:
	if copy == 0:
		print('Yes')
	else:
		print('No')
elif (copy - a) % 2 == 0 and org > 1 and (copy >= a):
	print('Yes')
else:
	print('No')


getInputList = lambda : list(input().split())
getInputIntList = lambda : list(map(int, input().split()))
(c, o) = getInputIntList()
if c > 0 and o == 1:
	print('No')
elif o == 0:
	print('No')
elif c + 1 >= o and (c - o - 1) % 2 == 0:
	print('Yes')
else:
	print('No')


inp = list(map(int, input().split()))
copy = inp[0]
ori = inp[1]
if not (ori == 1 or ori == 0):
	if copy >= ori - 1 and (copy - ori - 1) % 2 == 0:
		print('YES')
	else:
		print('NO')
elif ori == 0:
	print('NO')
elif copy > 0 and ori == 1:
	print('NO')
elif ori == 1 and copy == 0:
	print('YES')


(x, y) = map(int, input().split())

def powtwo(n):
	return n and (not n & n - 1)
y -= 1
x -= y
if y == 0 and x > 0:
	print('No')
elif x >= 0 and y >= 0:
	if x % 2 == 0:
		print('Yes')
	else:
		print('No')
else:
	print('No')


(x, y) = map(int, input().split())
ans = 'Yes'
if y == 0:
	ans = 'No'
s = y - 1
if x - s < 0 or (x - s) % 2 != 0 or (x > 0 and s == 0):
	ans = 'No'
print(ans)


import sys
s = sys.stdin.readline().strip().split(' ')
if int(s[1]) > 0:
	s[1] = int(s[1]) - 1
	s[0] = int(s[0]) - int(s[1])
	if int(s[0]) < 0:
		s[0] = -3
	if int(s[1]) > 0:
		s[1] = -1
	if int(s[1]) == 0 and int(s[0]) == 0:
		s[1] = -1
if int(s[0]) % 2 == 0 and int(s[1]) == -1:
	print('Yes')
else:
	print('No')


import getpass
import sys
import math

def ria():
	return [int(i) for i in input().split()]
files = True
if getpass.getuser() == 'frohenk' and files:
	sys.stdin = open('test.in')
(x, y) = ria()
y -= 1
if y == -1:
	print('No')
	exit(0)
if y == 0 and x != 0:
	print('No')
	exit(0)
x -= y
if x % 2 == 0 and x >= 0:
	print('Yes')
else:
	print('No')
sys.stdout.close()


(x, y) = list(map(int, input().split()))
if y == 0 or (y == 1 and x > 0):
	print('NO')
else:
	t = y - 1
	c = x - t
	if c < 0:
		print('NO')
	elif c % 2 == 0:
		print('YES')
	else:
		print('NO')


from collections import Counter, defaultdict, deque
from math import factorial as fact
import math
(x, y) = [int(x) for x in input().split()]
if y == 1 and x == 0:
	print('yes')
	exit()
if y == 0 or (y == 1 and x != 0) or y - 1 > x:
	print('no')
	exit()
xs = x - y + 1
if xs % 2 == 0:
	print('yes')
else:
	print('no')


(x, y) = list(map(int, input().split()))

def f():
	if y == 0:
		return False
	if y == 1:
		if x == 0:
			return True
		return False
	s = y - 1
	if s > x:
		return False
	if (x - s) % 2 == 1:
		return False
	return True
if f():
	print('Yes')
else:
	print('No')


(x, y) = list(map(int, input().split(' ')))
num = x - y + 1
if y == 1:
	if x == 0:
		print('Yes')
	else:
		print('No')
elif y == 0:
	print('NO')
elif x == y - 1:
	print('Yes')
elif num % 2 == 0 and num > 0:
	print('Yes')
else:
	print('No')


(n, k) = map(int, input().split())
count1 = 0
count2 = 0
if k == 0:
	print('No')
else:
	count1 = k - 1
	count2 = count1
	if count2 == 0 and n > 0:
		print('No')
		exit()
	if n < count2:
		print('No')
	elif (n - count2) % 2 == 0:
		print('Yes')
	else:
		print('No')


def main():
	(c, o) = (int(x) for x in input().split())
	print(solver(o, c))

def solver(o, c):
	if o == 1 and c == 0:
		return 'Yes'
	if o > 1 and c >= o - 1 and ((c - o) % 2 != 0):
		return 'Yes'
	else:
		return 'No'
main()


input_list = input().split()
for i in range(len(input_list)):
	input_list[i] = int(input_list[i])
copies = input_list[0]
originals = input_list[1]
if copies > 0 and originals <= 1:
	print('no')
elif copies > originals:
	cpy = originals - 1
	if (copies - cpy) % 2 == 0 and copies - cpy >= 0:
		print('yes')
	else:
		print('no')
elif copies == originals - 1:
	print('yes')
else:
	print('no')


(x, y) = map(int, input().split())
can = 1
if x is not 0 and y is 1:
	can = 0
if y is 0 and x is not 0:
	can = 0
if x - y < -1:
	can = 0
remain = x - y + 1
if remain % 2 is not 0:
	can = 0
ans = 'No'
if can:
	ans = 'Yes'
print(ans)


A = list(map(int, input().split()))
x = A[0]
y = A[1]

def check(x, y):
	if y == 0:
		return 0
	if y == 1:
		if x == 0:
			return 1
		else:
			return 0
	if (x + y) % 2 == 0:
		return 0
	if x < y:
		if y - x == 1:
			return 1
		else:
			return 0
	if x > y:
		if (x - y) % 2 == 0:
			return 0
		else:
			return 1
if check(x, y) == 1:
	print('Yes')
else:
	print('No')


(k, o) = map(int, input().split())
if o == 0:
	print('No')
	exit(0)
if o == 1:
	if k == 0:
		print('Yes')
	else:
		print('No')
	exit(0)
k -= o - 1
if k >= 0 and k % 2 == 0:
	print('Yes')
else:
	print('No')