#include <bits/stdc++.h>
const int N = 105;
struct node {
  int x, y;
} s[N];
int main() {
  int a, b;
  char x[N];
  while (scanf("%d%d", &a, &b) != EOF) {
    scanf("%s", x);
    if (a == 0 && b == 0) {
      puts("Yes");
      continue;
    }
    int len = strlen(x), i;
    int u = 0, d = 0, l = 0, r = 0;
    s[0].x = 0;
    s[0].y = 0;
    int size = 1;
    int dx = 0, dy = 0;
    for (i = 0; i < len; i++) {
      switch (x[i]) {
        case 'U':
          u++;
          s[size].x = dx, s[size++].y = ++dy;
          break;
        case 'D':
          d++;
          s[size].x = dx, s[size++].y = --dy;
          break;
        case 'L':
          l++;
          s[size].x = --dx, s[size++].y = dy;
          break;
        case 'R':
          r++;
          s[size].x = ++dx, s[size++].y = dy;
          break;
      }
    }
    bool f = 0;
    for (i = 0; i < size && !f; i++) {
      int ai = a - s[i].x, bi = b - s[i].y;
      if (r - l == 0) {
        if (ai == 0 && ((u - d == 0 && bi == 0) ||
                        (u - d != 0 && bi % (u - d) == 0 && bi / (u - d) > 0)))
          f = 1;
      } else if (u - d == 0) {
        if (bi == 0 && ((r - l == 0 && ai == 0) ||
                        (r - l != 0 && ai % (r - l) == 0 && ai / (r - l) > 0)))
          f = 1;
      } else if (ai % (r - l) == 0 && bi % (u - d) == 0 &&
                 ai / (r - l) == bi / (u - d) && ai / (r - l) > 0)
        f = 1;
      else {
        if (ai == 0 && bi == 0) f = 1;
      }
    }
    if (f)
      puts("Yes");
    else
      puts("No");
  }
  return 0;
}
