x, y = map(int, input().split())
if y == 0:
print('No')
exit(0)
if y == 1:
if x == 0:
print('Yes')
else:
print('No')
exit(0)
print('Yes' if x >= y - 1 and (x - y + 1) % 2 == 0 else 'No')
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
ll x,y;
cin>>x>>y;
y=y-1;
if (y > x || (x > 0 && y <= 0))
{
cout << "No" ;
return 0;
}
if((x%2==0 && y%2==0)||(x%2==1 && y%2==1))
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
return 0;
}
1702B - Polycarp Writes a String from Memory | 1701A - Grass Field |
489C - Given Length and Sum of Digits | 886B - Vlad and Cafes |
915A - Garden | 356A - Knight Tournament |
1330A - Dreamoon and Ranking Collection | 1692B - All Distinct |
1156C - Match Points | 1675A - Food for Animals |
1328C - Ternary XOR | 1689A - Lex String |
1708B - Difference of GCDs | 863A - Quasi-palindrome |
1478A - Nezzar and Colorful Balls | 1581B - Diameter of Graph |
404A - Valera and X | 908A - New Year and Counting Cards |
146A - Lucky Ticket | 1594C - Make Them Equal |
1676A - Lucky | 1700B - Palindromic Numbers |
702C - Cellular Network | 1672C - Unequal Array |
1706C - Qpwoeirut And The City | 1697A - Parkway Walk |
1505B - DMCA | 478B - Random Teams |
1705C - Mark and His Unfinished Essay | 1401C - Mere Array |