#include #include #include #include #include #include using namespace std; set> memo; bool dfs(long long a, long long b) { if (a == 0 && b == 0) { return true; } if (a % 2 == 1 && b % 2 == 1) { return false; } if (a > b) { swap(a, b); } auto p = make_pair(a, b); if (memo.count(p) > 0) { return false; } if (a % 2 == 0) { auto ret = dfs(a / 2, b - 1); if (ret) { return true; } else { memo.insert(p); } } if (b % 2 == 0) { auto ret = dfs(a - 1, b / 2); if (!ret) { memo.insert(p); } return ret; } return false; } int main() { long long a, b; cin >> a >> b; bool ok = dfs(a, b); cout << (ok ? "Yes" : "No") << endl; return 0; }