#include <iostream>
#include <iterator>
using namespace std;

int main() {
  // 定义数字num和目标
    unsigned short num, target;
    while (cin >> num >> target) {
        bool flag = false;//flag用于能否找到结果
        const unsigned short carry = 1 << 15;//
        for (int i = 0; i < 20; i++) {
		  //如果num大于carry证明左移需要进一
            if (num >= carry) {
                num = (num << 1) + 1;
            } else {
                num = num << 1;
            }
		  //找到结果输出并标记
            if(num == target){
                flag = true;
                cout << "YES"<<endl;
                break;
            }
        }
       if(!flag) cout <<"NO"<<endl;
    }
}
// 64 位输出请用 printf("%lld")