#include <bits/stdc++.h>
using namespace std;
inline int sign(int a) { return a < 0 ? -1 : 1; }
int main() {
  long long a, b, dx, dy;
  cin >> a >> b;
  if (a == 0 && b == 0) {
    cout << "Yes";
    return 0;
  }
  vector<pair<int, int> > path;
  string s;
  cin >> s;
  path.resize(s.length() + 1);
  path[0] = pair<int, int>(0, 0);
  for (int i = 1; i <= s.length(); i++) {
    char ch = s[i - 1];
    if (ch == 'L')
      path[i] = pair<int, int>(path[i - 1].first - 1, path[i - 1].second);
    else if (ch == 'R')
      path[i] = pair<int, int>(path[i - 1].first + 1, path[i - 1].second);
    else if (ch == 'U')
      path[i] = pair<int, int>(path[i - 1].first, path[i - 1].second + 1);
    else
      path[i] = pair<int, int>(path[i - 1].first, path[i - 1].second - 1);
  }
  int n = path.size();
  dx = path[n - 1].first - path[0].first,
  dy = path[n - 1].second - path[0].second;
  for (int i = 0; i < (int)n; i++)
    if (path[i].first == a && path[i].second == b) {
      cout << "Yes";
      return 0;
    }
  if (dx == 0 && dy == 0) {
    cout << "No";
    return 0;
  }
  for (int i = 0; i < (int)n; i++) {
    long long first = path[i].first, second = path[i].second;
    double modx, mody;
    if (dx == 0 && sign(b - second) == sign(dy) && (b - second) % dy == 0 &&
        (a - first) == 0) {
      cout << "Yes";
      return 0;
    }
    if (dy == 0 && sign(a - first) == sign(dx) && (a - first) % dx == 0 &&
        (b - second) == 0) {
      cout << "Yes";
      return 0;
    }
    if (dx != 0 && dy != 0) {
      modx = (double)(a - first) / dx;
      mody = (double)(b - second) / dy;
      if ((a - first) % dx != 0 || (b - second) % dy != 0) continue;
      if (modx == mody && sign(a - first) == sign(dx) &&
          sign(b - second) == sign(dy)) {
        cout << "Yes";
        return 0;
      }
    }
  }
  cout << "No";
  return 0;
}
