#include <iostream>
#include <bitset>
#include <string>

using namespace std;

int main() {
    unsigned int a, b;
    while (cin >> a >> b) {
        string sa = bitset<16>(a).to_string();
        string sb = bitset<16>(b).to_string();

        bool found = (sa == sb);
        for (int k = 1; k < 16 && !found; ++k) {
            string shifted = sa.substr(k) + sa.substr(0, k);
            if (shifted == sb) {
                found = true;
                break;
            }
        }

        if (!found) {
            // 检查另一个数的移位情况
            for (int k = 1; k < 16; ++k) {
                string shifted = sb.substr(k) + sb.substr(0, k);
                if (shifted == sa) {
                    found = true;
                    break;
                }
            }
        }

        cout << (found ? "YES" : "NO") << endl;
    }
    return 0;
}