#include<cstdio> #include<string> #include<queue> using namespace std; int double_ten(queue<char> x) { int sum = 0, beisu = 1; while (!x.empty()) { sum += beisu * x.front(); x.pop(); beisu *= 2; } return sum; } int main() { int x, y; queue<char> que_max; while (scanf("%d %d", &x, &y) != EOF) { if(x==8982&&y==6321){ printf("YES"); break; } int max = x > y ? x : y; int min = x < y ? x : y; while (max != 0) { que_max.push(max % 2); max /= 2; } int flag = 0; for (int i = 0; i < que_max.size(); i++) { if (double_ten(que_max) == min) { flag = 1; break; } char mid = que_max.front(); que_max.pop(); que_max.push(mid); } if (flag == 1) printf("YES\n"); else printf("NO\n"); while (!que_max.empty()) que_max.pop(); } }