#include <algorithm>
#include <cstdio>
#include <iostream>
#include <map>
#include <math.h>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <vector>
using namespace std;

#define ll long long
#define INF (1 << 30)
#define INFLL (1LL << 60)

//(x-2,y-1),(x-2,y+1),(x-1,y-2),(x-1,y+2),(x+1,y-2),(x+1,y+2),(x+2,y-1),(x+2,y+1)
const int DIRX[8] = {-2,-2,-1,-1,1,1,2,2};
const int DIRY[8] = {-1,1,-2,2,-2,2,-1,1};

int tx,ty;

bool dfs(int nx,int ny,int now){
	if(now == 4) return false;
	if(nx == tx && ny == ty) return true;
	bool ans = false;
	for(int i = 0;i < 8;i++){
		if(dfs(nx + DIRX[i],ny + DIRY[i],now + 1)) ans = true;
	}
	return ans;
}

int main() {
	cin >> tx >> ty;
	if(dfs(0,0,0)) cout << "YES" << endl;
	else cout << "NO" << endl;
	return 0;
}