#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 10;
priority_queue<int, vector<int>, greater<int> > qu;
priority_queue<int, vector<int>, less<int> > qd;
FILE *fin = NULL, *fout = NULL;
void test() {
  fin = freopen("D:\\Project\\testdata.in", "r", stdin);
  fout = freopen("D:\\Project\\testdata.out", "w", stdout);
}
int main(void) {
  long long x, y;
  while (scanf("%I64d%I64d", &x, &y) == 2) {
    y--;
    if (x - y >= 0 && (x - y) % 2 == 0 && y > 0 || x == 0 && y == 0)
      cout << "Yes" << endl;
    else
      cout << "No" << endl;
  }
  return 0;
}
