#include <bits/stdc++.h>
using namespace std;
long long int fn1(char ch) {
  if (ch == 'L')
    return -1;
  else if (ch == 'R')
    return 1;
  else
    return 0;
}
long long int fn2(char ch) {
  if (ch == 'U')
    return 1;
  else if (ch == 'D')
    return -1;
  else
    return 0;
}
int main() {
  long long int i, ln, j, k, n, m, t, ans = 0, fl = 0, x, y, px, py, vl1, fx,
                                      fy, vl2;
  string a;
  cin >> x >> y;
  cin >> a;
  vector<pair<long long int, long long int> > v;
  px = 0;
  py = 0;
  ln = a.length();
  v.push_back(make_pair(px, py));
  for (i = 0; i < ln; i++) {
    px = px + fn1(a[i]);
    py = py + fn2(a[i]);
    v.push_back(make_pair(px, py));
  }
  fx = px;
  fy = py;
  if (fx != 0 && fy != 0) {
    for (i = 0; i < v.size(); i++) {
      vl1 = x - v[i].first;
      vl2 = y - v[i].second;
      if (vl1 % fx == 0 && vl2 % fy == 0 && vl1 / fx >= 0) {
        if (vl1 / fx == vl2 / fy) {
          fl = 1;
        }
      }
    }
  } else if (fx == 0 && fy != 0) {
    for (i = 0; i < v.size(); i++) {
      vl2 = y - v[i].second;
      if (vl2 % fy == 0 && v[i].first == x && vl2 / fy >= 0) {
        fl = 1;
      }
    }
  } else if (fx != 0 && fy == 0) {
    for (i = 0; i < v.size(); i++) {
      vl1 = x - v[i].first;
      if (vl1 % fx == 0 && v[i].second == y && vl1 / fx >= 0) {
        fl = 1;
      }
    }
  } else if (fx == 0 && fy == 0) {
    for (i = 0; i < v.size(); i++) {
      if (v[i].first == x && v[i].second == y) {
        fl = 1;
      }
    }
  }
  if (fl == 1)
    cout << "Yes";
  else
    cout << "No";
  return 0;
}
