#include <bits/stdc++.h>
using namespace std;
char s[105];
bool vis[205][205];
int main(void) {
  long long a, b;
  scanf("%I64d %I64d", &a, &b);
  scanf("%s", s);
  memset(vis, 0, sizeof(vis));
  long long x = 0, y = 0;
  vis[100][100] = true;
  for (int i = 0; s[i]; i++) {
    switch (s[i]) {
      case 'U':
        y++;
        break;
      case 'D':
        y--;
        break;
      case 'L':
        x--;
        break;
      case 'R':
        x++;
        break;
    }
    vis[x + 100][y + 100] = true;
  }
  int n = strlen(s);
  long long t1, t2;
  if (x == 0)
    t1 = t2 = 0;
  else {
    t1 = (a - 101) / x;
    t2 = (a + 101) / x;
  }
  if (t1 > t2) t1 ^= t2 ^= t1 ^= t2;
  bool ans = false;
  for (long long i = max(0ll, t1); i <= max(0ll, t2); i++) {
    long long xx = i * x, yy = i * y;
    long long x1 = a - xx;
    long long y1 = b - yy;
    if (x1 < 100 && x1 > -100 && y1 < 100 && y1 > -100 &&
        vis[x1 + 100][y1 + 100])
      ans = true;
  }
  if (y == 0)
    t1 = t2 = 0;
  else {
    t1 = (b - 101) / y;
    t2 = (b + 101) / y;
  }
  if (t1 > t2) t1 ^= t2 ^= t1 ^= t2;
  for (long long i = max(0ll, t1); i <= max(0ll, t2); i++) {
    long long xx = i * x, yy = i * y;
    long long x1 = a - xx;
    long long y1 = b - yy;
    if (x1 < 100 && x1 > -100 && y1 < 100 && y1 > -100 &&
        vis[x1 + 100][y1 + 100])
      ans = true;
  }
  puts(ans ? "Yes" : "No");
}
