#include <bits/stdc++.h>
using namespace std;
struct point {
  long long x, y;
};
string s;
vector<point> V;
point D;
double r(point A) {
  double ans = A.x * A.x + A.y * A.y;
  return sqrt(ans);
}
void buoc(char c, point &P) {
  if (c == 'U') P.y += 1;
  if (c == 'D') P.y -= 1;
  if (c == 'L') P.x -= 1;
  if (c == 'R') P.x += 1;
}
void thuchien() {
  int ok = 0;
  if (D.x == 0 && D.y == 0) {
    cout << "Yes" << endl;
    return;
  }
  point XP;
  XP.x = 0;
  XP.y = 0;
  point tmp = XP;
  V.push_back(XP);
  for (int i = 0; i <= s.size() - 1; i++) {
    buoc(s[i], tmp);
    V.push_back(tmp);
  }
  point huong = tmp;
  for (int i = 0; i < V.size(); i++) {
    if (D.x == V[i].x && D.y == V[i].y) {
      cout << "Yes" << endl;
      return;
    }
  }
  for (int i = 0; i < V.size(); i++) {
    tmp.x = D.x - V[i].x;
    tmp.y = D.y - V[i].y;
    if (tmp.x * huong.y - tmp.y * huong.x == 0 &&
        tmp.x * huong.x + tmp.y * huong.y > 0) {
      double tyso = r(tmp) / r(huong);
      int zz = (int)(tyso);
      if (abs(tyso - zz) < 1e-2 || abs(tyso - 1 - zz) < 1e-2) {
        cout << "Yes" << endl;
        return;
      }
    }
  }
  cout << "No" << endl;
}
int main() {
  cin >> D.x >> D.y;
  cin >> s;
  thuchien();
  return 0;
}
