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