#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    int a, b;
    while (cin >> a >> b) { 
        // 先保证 a 和 b 的二进制表示都为 16 位
        vector<int> bina(16, 0), binb(16, 0);

        // 填充 a 和 b 的二进制位
        for (int i = 15; i >= 0; i--) {
            bina[i] = a & 1;
            a >>= 1;
            binb[i] = b & 1;
            b >>= 1;
        }

        // 对 b 进行循环左移并比较
        bool found = false;
        for (int i = 0; i < 16; i++) {
            bool isequal = true;
            // 进行循环左移
            for (int j = 0; j < 16; j++) {
                if (bina[j] != binb[(j + i) % 16]) {
                    isequal = false;
                    break;
                }
            }
            if (isequal) {
                cout << "YES" << endl;
                found = true;
                break;
            }
        }
        if (!found) {
            cout << "NO" << endl;
        }
    }
}