#include "bits/stdc++.h"
using namespace std; 

#ifdef LOCAL
    #include "debug.h"
    #define input freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);
#else
    #define debug(...) 4
    #define input 4
#endif

using ll = long long;
const int mod = 1e9 + 7;
const int N = 2e6 + 5;


int dp[12][12];
//Beggar - C(n+r-1,r-1)
int fac[N],invf[N];
inline int add(int x, int y) { 
    return x + y >= mod ? x + y - mod : x + y; 
}
inline int sub(int x, int y) { 
    return x - y >= 0 ? x - y : x - y + mod; 
}
inline int power(int x, int y, int res = 1) {
    while(y) {
        if(y & 1)
            res = 1ll * res * x % mod;
        x = 1ll * x * x % mod;
        y >>= 1;
    }
    return res;
}
void initcombi(int n) {
    for (int i = fac[0] = 1; i <= n; i++) { 
        fac[i] = 1ll * fac[i - 1] * i % mod; 
    }
    invf[n] = power(fac[n], mod - 2);
    for (int i = n; i; i--) { 
        invf[i - 1] = 1ll * invf[i] * i % mod; 
    }
}
inline int NCR(int n, int m) {
    if (n < m)
        return 0;
    
    return 1ll * fac[n] * invf[m] % mod * invf[n - m] % mod;
}

signed main() {
    input;
    cin.tie(nullptr) -> sync_with_stdio(false);
    ll x, y;
    cin >> x >> y;
    for(int i = 1; i <= sqrt(y); i++) {
        ll d = y / i;
        if(i + d == x) {
            cout << "Yes";
            return 0;
        }    
    }
    cout << "No";

}   




// C++ (GCC9.2.1) AtCoder
/*
Ctrl+Option+N で　実行

*/

#include <bits/stdc++.h>
#define INF 100000000000
#define MOD 1000000007
#define REP(i, n) for (int i = 0; i < (int)(n); i++)
#define all(x) (x).begin(),(x).end()
#define print(x) cout << (x) << endl;

typedef long long ll;

using namespace std;


int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr); 
  int M,H; cin>>M>>H;
  string ans = "No";
  if(H % M == 0) ans = "Yes";
  print(ans);





  return 0;
}