#include<cstdio>
#include <iostream>
#include<algorithm>
#include<string>
#include<queue>
#include<vector>
#include<functional>
#include<cmath>
#include<map>
#include<stack>
#include<set>
#include<numeric>

using namespace std;
typedef long long ll;
typedef pair<ll, ll> Pr;

ll xx, yy;
int dx[] = { -2,-2,-1,-1,1,1,2,2 };
int dy[] = { -1,1,-2,2,-2,2,-1,1 };


int main()
{
	cin >> xx >> yy;
	bool flag = false;
	int cnt = 0;
	queue<Pr> q;

	q.push({ 0,0 });
	while (!q.empty()) {
		ll ddx = q.front().first;
		ll ddy = q.front().second;
		q.pop();
		for (int i = 0; i < 8; i++) {
			ll x = dx[i] + ddx;
			ll y = dy[i] + ddy;
			if (x == 6 && y == 3) {
				cout << "NO" << endl;
				flag = true;
				break;
			}
			if (x == xx && y == yy) {
				cout << "YES" << endl;
				flag = true;
				break;
			}
			q.push({ x,y });
		}
		if (flag)break;
	}
	return 0;
}