#include <cstdio>
#include <iostream>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <string>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <bitset>
#include <numeric>
#include <limits>
#include <climits>
#include <cfloat>
#include <functional>
using namespace std;

unsigned xor128(){
    static unsigned x=123456789,y=362436069,z=521288629,w=88675123;
    unsigned t;
    t=(x^(x<<11));x=y;y=z;z=w; return( w=(w^(w>>19))^(t^(t>>8)) );
}

const int dy[] = {-2, -2, -1, -1, 1, 1, 2, 2};
const int dx[] = {-1, 1, -2, 2, -2, 2, -1, 1};

int main()
{
    int gx, gy;
    cin >> gx >> gy;

    for(int t=0; t<100000; ++t){
        int x = 0;
        int y = 0;
        for(int i=0; i<=3; ++i){
            if(x == gx && y == gy){
                cout << "YES" << endl;
                return 0;
            }
            int j = xor128() % 8;
            x += dx[j];
            y += dy[j];
        }
    }

    cout << "NO" << endl;
    return 0;
}