#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const double pi = 2 * acos(0.0);
const string alphabetU = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const string alphabetL = "abcdefghijklmnopqrstuvwxyz";
const long long infinite = 1000000000;
const long long maxn = 100010;
static const int m37pos[] = {32, 0, 1,  26, 2,  23, 27, 0,  3,  16, 24, 30, 28,
                             11, 0, 13, 4,  7,  17, 0,  25, 22, 31, 15, 29, 10,
                             12, 6, 0,  21, 14, 9,  5,  20, 8,  19, 18};
inline int nextInt() {
  int x = 0;
  register int c = getc(stdin);
  int sign = 0;
  for (; ((c < 48 || c > 57) && c != '-'); c = getc(stdin))
    ;
  if (c == '-') {
    sign = 1;
    c = getc(stdin);
  }
  for (; c > 47 && c < 58; c = getc(stdin)) x = (x << 1) + (x << 3) + c - 48;
  if (sign) x = -x;
  return x;
}
inline long long nextLong() {
  long long x = 0;
  register int c = getc(stdin);
  int sign = 0;
  for (; ((c < 48 || c > 57) && c != '-'); c = getc(stdin))
    ;
  if (c == '-') {
    sign = 1;
    c = getc(stdin);
  }
  for (; c > 47 && c < 58; c = getc(stdin)) x = (x << 1) + (x << 3) + c - 48;
  if (sign) x = -x;
  return x;
}
inline string nextLine() {
  string s;
  while (!feof(stdin)) {
    char c = fgetc(stdin);
    if (c == 13) continue;
    if (c == 10) return s;
    s += c;
  }
  return s;
}
void scan(int &x) { x = nextInt(); }
void scanl(long long &x) { x = nextLong(); }
void scans(string &s) { s = nextLine(); }
const int mod = 1e9 + 7;
const int M = 105;
struct node {
  int x, y;
} Node[M];
int main() {
  int n, m;
  string str;
  scan(n);
  scan(m);
  scans(str);
  if (n == 0 && m == 0) {
    cout << "Yes" << endl;
    return 0;
  }
  long long x = 0;
  long long y = 0;
  for (int i = 0, _b = str.size(); i < _b; i++) {
    Node[i].x = x;
    Node[i].y = y;
    if (str[i] == 'L')
      x--;
    else if (str[i] == 'R')
      x++;
    if (str[i] == 'U')
      y++;
    else if (str[i] == 'D')
      y--;
  }
  for (int i = 0, _b = str.size(); i < _b; i++) {
    if (((x != 0 || n == Node[i].x) && (x == 0 || (n - Node[i].x) % x == 0)) &&
        ((y != 0 || m == Node[i].y) && (y == 0 || (m - Node[i].y) % y == 0))) {
      if (((n - Node[i].x) * y == (m - Node[i].y) * x)) {
        if ((x == 0 || (n - Node[i].x) / x >= 0) &&
            (y == 0 || (m - Node[i].y) / y >= 0)) {
          cout << "Yes";
          return 0;
        }
      }
    }
  }
  cout << "No" << endl;
  return 0;
}
