#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
const int MAX = 10000000;
double eps = 1e-9;
const long long BIG_INF = 7000000000000000000LL;
const int INF = 2000000000;
double PI = 3.1415926535897932384626433832795;
string inttostring(int n) {
  stringstream a;
  a << n;
  string A;
  a >> A;
  return A;
}
int stringtoint(string A) {
  stringstream a;
  a << A;
  int p;
  a >> p;
  return p;
}
int main() {
  int a, b;
  cin >> a >> b;
  string S;
  cin >> S;
  int n = S.size();
  vector<int> x, y;
  int p = 0, q = 0;
  x.push_back(0);
  y.push_back(0);
  for (int i = 0; i < n; i++) {
    if (S[i] == 'R') {
      p++;
      x.push_back(p);
      y.push_back(q);
    }
    if (S[i] == 'L') {
      p--;
      x.push_back(p);
      y.push_back(q);
    }
    if (S[i] == 'U') {
      q++;
      x.push_back(p);
      y.push_back(q);
    }
    if (S[i] == 'D') {
      q--;
      x.push_back(p);
      y.push_back(q);
    }
  }
  for (int i = 0; i < n; i++) {
    int finda = a - x[i];
    int findb = b - y[i];
    if (finda < 0) {
      if (x[n] < 0) {
        if ((-finda) % (-x[n]) == 0) {
          int k = (-finda) / (-x[n]);
          if ((long long)k * y[n] == (long long)findb) {
            cout << "Yes\n";
            return 0;
          }
        }
      }
    }
    if (finda > 0) {
      if (x[n] > 0) {
        if (finda % x[n] == 0) {
          int k = finda / x[n];
          if ((long long)k * y[n] == (long long)findb) {
            cout << "Yes\n";
            return 0;
          }
        }
      }
    }
    if (finda == 0) {
      if (findb == 0) {
        cout << "Yes\n";
        return 0;
      }
      if (x[n] == 0) {
        if (findb > 0 && y[n] > 0 && findb % y[n] == 0) {
          cout << "Yes\n";
          return 0;
        }
        if (findb < 0 && y[n] < 0 && (-findb) % (-y[n]) == 0) {
          cout << "Yes\n";
          return 0;
        }
      }
    }
  }
  cout << "No\n";
}
