#include <iostream>
#include <iomanip>
#include <vector>
typedef unsigned long long ul;
typedef signed long long ll;

std::vector< ll > kx = {-2, -2, -1, -1,  1, 1,  2, 2};
std::vector< ll > ky = {-1,  1, -2,  2, -2, 2, -1, 1};

bool dfs(int depth, ll x, ll y, ll gx, ll gy)
{
  if (x==gx && y==gy) return true;
  if (depth==0) return false;
  for (int i = 0; i < 8; ++i) {
    if (dfs(depth-1, x+kx[i], y+ky[i], gx, gy)) return true;
  }
  return false;
}

int main(void)
{
  std::cin.tie(0);
  std::ios::sync_with_stdio(false);
  std::cout << std::fixed << std::setprecision(2);
  ll x, y;
  std::cin >> x >> y;
  std::cout << (dfs(3, 0, 0, x, y) ? "YES" : "NO") << std::endl;
  return 0;
}