#include <bits/stdc++.h>
using namespace std;
struct point {
  int x, y;
};
point r[500];
char s[500];
int dx, dy, x, y, nr;
bool check(point p) {
  int tx = x - p.x;
  int ty = y - p.y;
  int aty = abs(ty), atx = abs(tx), ady = abs(dy), adx = abs(dx);
  if (tx == 0) {
    if (ty == 0)
      return true;
    else if ((ty > 0) && (dy > 0) && (dx == 0) && (ty % dy == 0))
      return true;
    else if ((ty < 0) && (dy < 0) && (dx == 0) && (aty % ady == 0))
      return true;
  } else if (ty == 0) {
    if ((tx > 0) && (dx > 0) && (dy == 0) && (tx % dx == 0))
      return true;
    else if ((tx < 0) && (dx < 0) && (dy == 0) && (atx % adx == 0))
      return true;
  } else {
    if ((((tx > 0) && (dx > 0) && (ty > 0) && (dy > 0)) ||
         ((tx > 0) && (dx > 0) && (ty < 0) && (dy < 0)) ||
         ((tx < 0) && (dx < 0) && (ty > 0) && (dy > 0)) ||
         ((tx < 0) && (dx < 0) && (ty < 0) && (dy < 0))) &&
        (atx / adx == aty / ady) && (atx % adx == 0) && (aty % ady == 0))
      return true;
  }
  return false;
}
int main() {
  scanf("%d%d\n", &x, &y);
  gets(s);
  int n = strlen(s), x0 = 0, y0 = 0;
  nr = 1;
  r[1].x = 0;
  r[1].y = 0;
  bool ok;
  for (int i = 0; i < n; i++) {
    if (s[i] == 'U')
      y0++;
    else if (s[i] == 'D')
      y0--;
    else if (s[i] == 'R')
      x0++;
    else
      x0--;
    ok = false;
    for (int j = 1; j <= nr; j++)
      if ((r[j].x == x0) && (r[j].y == y0)) {
        ok = true;
        break;
      }
    if (!ok) {
      nr++;
      r[nr].x = x0;
      r[nr].y = y0;
    }
  }
  dx = x0;
  dy = y0;
  for (int i = 1; i <= nr; i++)
    if (check(r[i])) {
      printf("Yes\n");
      return 0;
    }
  printf("No\n");
  return 0;
}
