/* -*- coding: utf-8 -*- * * 683.cc: No.683 Two Operations No.3 - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ /* typedef */ typedef long long ll; typedef pair pll; /* global variables */ /* subroutines */ /* main */ int main() { ll a, b; scanf("%lld%lld", &a, &b); queue q; q.push(pll(a, b)); bool ok = false; while (! q.empty()) { pll u = q.front(); q.pop(); ll &ua = u.first, &ub = u.second; if (ua == 0 || ub == 0) { ok = true; break; } bool pa = (ua & 1), pb = (ub & 1); if (! pa) q.push(pll(ua / 2, ub - 1)); if (! pb) q.push(pll(ua - 1, ub / 2)); } if (ok) puts("Yes"); else puts("No"); return 0; }