#include <bits/stdc++.h>
using namespace std;
struct Point {
  long long x, y;
  Point(long long a, long long b) { x = a, y = b; }
  Point() {}
};
Point operator-(Point A, Point B) { return Point(A.x - B.x, A.y - B.y); };
Point operator+(Point A, Point B) { return Point(A.x + B.x, A.y + B.y); };
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
vector<Point> v;
int main() {
  long long a, b;
  string s;
  cin >> a >> b;
  Point F = Point(a, b);
  Point P = Point(0, 0);
  v.push_back(P);
  cin >> s;
  int sz = s.size();
  for (int i = 0; i < sz; ++i) {
    if (s[i] == 'R') P = P + Point(dx[0], dy[0]);
    if (s[i] == 'L') P = P + Point(dx[1], dy[1]);
    if (s[i] == 'U') P = P + Point(dx[2], dy[2]);
    if (s[i] == 'D') P = P + Point(dx[3], dy[3]);
    v.push_back(P);
  }
  bool ok = 0;
  sz = v.size();
  for (int i = 0; i < sz; ++i) {
    Point Q = v[i];
    Point R = F - Q;
    if (P.x == 0 && P.y == 0) {
      if (P.x == R.x && P.y == R.y) ok = 1;
    } else {
      if (P.x == 0) {
        long long t = R.y / P.y;
        if (t >= 0 && P.x * t == R.x && P.y * t == R.y) ok = 1;
      } else {
        if (P.y == 0) {
          long long t = R.x / P.x;
          if (t >= 0 && P.x * t == R.x && P.y * t == R.y) ok = 1;
        } else {
          long long t = R.x / P.x;
          if (t >= 0 && P.x * t == R.x && P.y * t == R.y) ok = 1;
        }
      }
    }
  }
  if (ok)
    puts("Yes");
  else
    puts("No");
}
