For this Question: <i>Your Grace, I feel I've been remiss in my duties. I've given you meat and wine and music, but I haven’t shown you the hospitality you deserve. My King has married and I owe my new Queen a wedding gift. </i>

Roose Bolton thinks of attacking Robb Stark, but since Catelyn has realised his traumatising idea, she signals Robb by shouting two numbers A and B. For Robb to understand the signal, he needs to solve the following problem with the two numbers:

Given A and B, find whether A can be transformed to B if A can be converted to A + fact(A) any number of times, where fact(A) is any factor of A other than 1 and A itself.

For example: A = 9, B = 14 can follow the given steps during conversion
A = 9
A = 9 + 3 = 12 (3 is a factor of 9)
A = 12 + 2 = 14 = B (2 is a factor of 12)The first and the only line of input contains two numbers A and B.


Constraints
1 <= A, B <= 10<sup>12</sup>Output "Yes" (without quotes) if we can transform A to B, else output "No" (without quotes)Sample Input
9 14

Sample Output
Yes

Explanation: In the problem statement

Sample Input
33 35

Sample Output
No

Explanation
The minimum factor of 33 is 3, so we cannot transform 33 to 35., I have written this Solution Code: #include <bits/stdc++.h>
using namespace std;
#define sd(x) scanf("%d", &x)
#define sz(v) (int) v.size()
#define pr(v) For(i, 0, sz(v)) {cout<<v[i]<<" ";} cout<<endl;
#define slld(x) scanf("%lld", &x)
#define all(x) x.begin(), x.end()
#define For(i, st, en) for(int i=st; i<en; i++)
#define tr(x) for(auto it=x.begin(); it!=x.end(); it++)
#define fast std::ios::sync_with_stdio(false);cin.tie(NULL);
#define pb push_back
#define ll long long
#define ld long double
#define int long long
#define double long double
#define mp make_pair
#define F first
#define S second
typedef pair<int, int> pii;
typedef vector<int> vi;
#define pi 3.141592653589793238
const int MOD = 1e9+7;
const int INF = 1LL<<60;


const int N = 2e5+5;

// it's swapnil07 ;)
 
#ifdef SWAPNIL07
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1){
    cout << name << " : " << arg1 << endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args){
    const char* comma = strchr(names + 1, ',');cout.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...);
}
int begtime = clock();
#define end_routine() cout << "\n\nTime elapsed: " << (clock() - begtime)*1000/CLOCKS_PER_SEC << " ms\n\n";
#else
#define endl '\n'
#define trace(...)
#define end_routine()
#endif

int small_prime(int x) {
    for(int i=2; i*i<=x; i++){
        if(x%i==0){
            return i;
        }
    }
    return -1;
}

void solve(){
    int a, b;
    cin>>a>>b;
    int aa = a, bb = b;
    int d1 = small_prime(a);
    int d2 = small_prime(b);
    if (d1 == -1 || d2 == -1) {
        cout<<"No";
        return;
    }
    if ((a % 2) == 1) {
        a += d1;
    }
    if ((b % 2) == 1) {
        b -= d2;
    }
    if (a > b) {
        cout<<"No";
        return;
    }
    cout<<"Yes";
}


signed main()
{
    fast
    #ifdef SWAPNIL07
        freopen("input.txt","r",stdin);
        freopen("output.txt","w",stdout);
    #endif
    int t=1; 
    // cin>>t;
    while(t--){
        solve();
        cout<<"\n";
    }
    return 0;
}, In this Programming Language: C++, Now tell me if this Code is compilable or not?