#include <bits/stdc++.h>
using namespace std;
char s[200];
long long x, y;
struct node {
  long long x, y;
} a[200];
int main() {
  int sign = 0;
  while (cin >> x >> y) {
    sign++;
    cin >> s;
    a[0].x = a[0].y = 0;
    int len = strlen(s);
    int flag = 0;
    for (int i = 0; i < len; i++) {
      a[i + 1].x = a[i].x;
      a[i + 1].y = a[i].y;
      if (s[i] == 'U') a[i + 1].y++;
      if (s[i] == 'D') a[i + 1].y--;
      if (s[i] == 'L') a[i + 1].x--;
      if (s[i] == 'R') a[i + 1].x++;
      if (a[i + 1].x == x && a[i + 1].y == y) flag = 1;
    }
    if (x == 0 && y == 0) {
      printf("Yes\n");
      continue;
    }
    long long xx = a[len].x, yy = a[len].y;
    if ((xx == 0 && yy == 0) && flag == 0) {
      printf("No\n");
      continue;
    }
    if (flag == 0) {
      for (int i = 0; i < len + 1; i++) {
        if (xx == 0 && yy != 0 && (y - a[i].y) % yy == 0 && a[i].x == x)
          flag = 1;
        if (yy == 0 && xx != 0 && (x - a[i].x) % xx == 0 && y == a[i].y)
          flag = 1;
        if (xx * yy != 0 && (x - a[i].x) % xx == 0 && (y - a[i].y) % yy == 0)
          flag = 1;
        if (flag == 1) {
          if (xx * yy != 0 && (x - a[i].x) / xx != (y - a[i].y) / yy) flag = 0;
          if (xx != 0 && (x - a[i].x) * xx < 0) flag = 0;
          if (yy != 0 && (y - a[i].y) * yy < 0) flag = 0;
          if (flag == 1) break;
        }
      }
    }
    if (flag == 1)
      printf("Yes\n");
    else
      printf("No\n");
  }
  return 0;
}
