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.

Difficulty: EASY

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')


(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) = 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')


(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')


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')


(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)])


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')


(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')


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)


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()


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))


(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')


(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()


[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)


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')


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')


(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')


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')


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')


(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')


(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')


(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()


(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')


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))


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)


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)


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')


(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')


(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()))

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')


(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()


(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')