#include "bits/stdc++.h" #include #include #include #define rep(i,n) for(int i = 0; i < n; i++) typedef long long ll; typedef unsigned long long ull; using namespace std; #define vll vector> #define vl vector #define vi vector #define vii vector> #define pb push_back #define pf push_front #define ld long double #define Sort(a) sort(a.begin(),a.end()) #define cSort(a,cmp) sort(a.begin(),a.end(),cmp) #define reSort(a) sort(a.rbegin(), a.rend()) static const ll llMAX = numeric_limits::max(); static const int intMAX = numeric_limits::max(); static const ll llMIN = numeric_limits::min(); static const int intMIN = numeric_limits::min(); static const ll d_5 = 100000; static const ll d9_7 = 1000000007; static const ll d_9 = 1000000000; static const double PI=3.14159265358979323846; bool search(ull a,ull b){ if(a==0 && b==0){ return true; } if((a==0 && b==1) || (a==1 && b==0)){ return true; } if(a%2==1 && b%2==1){ return false; } bool ans=false; if(a>0&& b%2==0){ ans|=search(a-1,b>>1); } if(ans){ return true; } if(b>0&&a%2==0){ ans|=search(a>>1,b-1); } return ans; } int main(void){ ull a,b; cin>>a>>b; if(search(a,b)){ cout<<"Yes"<