// Created On : 2026-10-07 02:14:09 #include #include using namespace std; #define ll long long #define returnNO {std::cout << "NO\n"; return;} #define returnYES {std::cout << "YES\n"; return;} #define returnAns(x) {cout << x << "\n"; return;} template using MaxHeap = std::priority_queue, std::less>; template using MinHeap = std::priority_queue, std::greater>; const int MOD1 = 1000000007; const int MOD2 = 998244353; /** obs ** **/ void solve(int test_case_index) { ll x, y; cin >> x >> y; ll ops = 0; while (max(x, y) > 0) { if (x < y) swap(x, y); if (x & 1) swap(x, y); if (x & 1) returnAns("No") if (y < 0) returnAns("No") x /= 2, y -= 1; } returnAns("Yes") } void preComp() { } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); preComp(); int t = 1; // std::cin >> t; for (int i = 1; i <= t; ++i) solve(i); return 0; }