#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool rd(T &ret) {
  char c;
  int sgn;
  if (c = getchar(), c == EOF) return 0;
  while (c != '-' && (c < '0' || c > '9')) c = getchar();
  sgn = (c == '-') ? -1 : 1;
  ret = (c == '-') ? 0 : (c - '0');
  while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');
  ret *= sgn;
  return 1;
}
template <class T>
inline void pt(T x) {
  if (x < 0) {
    putchar('-');
    x = -x;
  }
  if (x > 9) pt(x / 10);
  putchar(x % 10 + '0');
}
const int inf = 1e9;
const int N = 105;
long long a, b;
char s[N];
long long x[N], y[N];
int n;
bool work() {
  for (int i = 0; i < n; i++) {
    long long l = a - x[i];
    long long r = b - y[i];
    if (x[n] == 0) {
      if (l) continue;
      if (y[n] == 0) {
        if (r)
          continue;
        else
          return true;
      }
      if (r % y[n]) continue;
      if (r / y[n] >= 0)
        return true;
      else
        continue;
    }
    if (l % x[n]) continue;
    if (l / x[n] < 0) continue;
    if (y[n] == 0) {
      if (r) continue;
      return true;
    }
    if (r % y[n]) continue;
    if (l / x[n] == r / y[n]) {
      if (l / x[n] >= 0) return true;
    }
  }
  return false;
}
int main() {
  rd(a);
  rd(b);
  scanf("%s", s + 1);
  n = strlen(s + 1);
  x[0] = y[0] = 0;
  for (int i = 1; s[i]; i++) {
    x[i] = x[i - 1];
    y[i] = y[i - 1];
    if (s[i] == 'U') y[i] = y[i - 1] + 1;
    if (s[i] == 'D') y[i] = y[i - 1] - 1;
    if (s[i] == 'L') x[i] = x[i - 1] - 1;
    if (s[i] == 'R') x[i] = x[i - 1] + 1;
  }
  work() ? puts("Yes") : puts("No");
  return 0;
}
