#include <bits/stdc++.h>
using namespace std;
void In(int x[], int a) {
    for (int i = 0; i < 16; i++) {
        x[i] = a % 2;
        a /= 2;
    }
    reverse(&x[0], &x[16]);
}
int cmp(int x[], int y[]) {
    for (int i = 0; i < 16; i++) {
        if (x[i] != y[i]) {
            return 0;
        }
    }
    return 1;
}
void mo(int x[]) {
    int tmp = x[0];
    for (int i = 0; i < 15; i++) {
        x[i] = x[i + 1];
    }
    x[15] = tmp;
}
int main() {
    int a, b, flag = 0;
    int x[16], y[16];
    while (cin >> a >> b) { // 注意 while 处理多个 case
        int x[16] = {0}, y[16] = {0};
        In(x, a);
        In(y, b);
        for (int i = 0; i < 16; i++) {
            flag = cmp(x, y);
            if (flag == 1) {
                break;
            }
            mo(x);
        }
        if (flag == 1) {
            cout << "YES" << endl;
        } else {
            cout << "NO" << endl;
        }
    }
}
// 64 位输出请用 printf("%lld")