#include <bits/stdc++.h>
using namespace std;
const int N = 110;
long long sx[N], sy[N], dx, dy;
int calx(char c) {
  if (c == 'U' || c == 'D') return 0;
  if (c == 'L') return -1;
  if (c == 'R') return 1;
}
int caly(char c) {
  if (c == 'L' || c == 'R') return 0;
  if (c == 'D') return -1;
  if (c == 'U') return 1;
}
int main() {
  long long a, b;
  string op;
  while (cin >> a >> b) {
    cin >> op;
    sx[0] = sy[0] = 0;
    int n = op.size();
    for (int i = 1; i <= n; i++) {
      sx[i] = sx[i - 1] + calx(op[i - 1]);
      sy[i] = sy[i - 1] + caly(op[i - 1]);
    }
    dx = sx[n];
    dy = sy[n];
    bool flag = 0;
    for (int i = 0; i <= n && !flag; i++) {
      if (dx != 0 && dy != 0) {
        if ((a - sx[i]) / dx == (b - sy[i]) / dy && (a - sx[i]) % dx == 0 &&
            (b - sy[i]) % dy == 0 && (a - sx[i]) * dx >= 0)
          flag = 1;
      } else if (dx == 0 && dy != 0) {
        if (a == sx[i] && (b - sy[i]) % dy == 0 && (b - sy[i]) * dy >= 0)
          flag = 1;
      } else if (dy == 0 && dx != 0) {
        if (b == sy[i] && (a - sx[i]) % dx == 0 && (a - sx[i]) * dx >= 0)
          flag = 1;
      } else {
        if (sx[i] == a && sy[i] == b) flag = 1;
      }
    }
    puts(flag ? "Yes" : "No");
  }
  return 0;
}
