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

int main(){
 
  int m,h;
  cin>>m>>h;
  
  if(h%m==0) cout<<"Yes"<<endl;
  else cout<<"No"<<endl;

return 0;
}

#include <iostream>
#include <iomanip>
#include <vector>
#include <cmath>
#include <algorithm>
#include <deque>
#include <set>
#include <limits>
#include <string>
#include <map>
#include <unordered_map>
#include <unordered_set>
#include <list>
#include <numeric>

using namespace std;

using ll = long long;
#define FOR(i, a, b) for (int i = (a); i < (b); ++i)

/* input & output */
#define IN(a) cin >> a
#define OUT(a) cout << a << endl
#define OUT_PREC(a, n) cout << fixed << setprecision(n) << a << endl

/* vector */
#define VEC(t, v, n, ini) vector<t> v(n, ini)
#define VEC2(t, v, m, n, ini) vector<vector<t>> v(m, vector<t>(n, ini))
#define VEC3(t, v, k, m, n, ini) vector<vector<vector<t>>> v(k, vector<vector<t>>(m, vector<t>(n, ini)))

/* bit */
#define IS_TRUE(bit, i) (bit & (1 << i))    // bitのi成分
#define FLAG_ON(bit, i) (bit｜(1 << i))     // bitのi成分をtrueに
#define FLAG_OFF(bit, i) (bit & ~(1 << i))  // bitのi成分をfalseに
#define ALL_TRUE(n) (1 << n)                // 2^n
#define CMPSET(bit, s) (bit ^ s)              // sのbitに対する補集合
#define INCLUDES(a, b) ((a & b) == b)       // aはbを含むか

bool solve()
{
    int m, h;
    cin >> m >> h;
    return (h % m == 0);
}

int main()
{
    /* solve */
    if(solve()) cout << "Yes" << endl;
    else cout << "No" << endl;
    system("pause");
}