#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;
}