#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3c3c3c3c;
const long long infl = 0x3c3c3c3c3c3c3c3c;
bool isSame(int a, int b) {
  if (a >= 0 && b >= 0) return true;
  if (a <= 0 && b <= 0) return true;
  return false;
}
bool isPossible(int a, int b, int cx, int cy, int wx, int wy) {
  if (wx != 0 && wy != 0) {
    if ((a - cx) % wx != 0) return false;
    if ((b - cy) % wy != 0) return false;
    if ((a - cx) / wx != (b - cy) / wy) return false;
    if (!isSame(a - cx, wx)) return false;
    if (!isSame(b - cy, wy)) return false;
    return true;
  }
  if (wx != 0 && wy == 0) {
    if (b != cy) return false;
    if ((a - cx) % wx != 0) return false;
    if (!isSame(a - cx, wx)) return false;
    return true;
  }
  if (wx == 0 && wy != 0) {
    if (a != cx) return false;
    if ((b - cy) % wy != 0) return false;
    if (!isSame(b - cy, wy)) return false;
    return true;
  }
  return a == cx && b == cy;
}
int main() {
  cin.tie(NULL);
  cin.sync_with_stdio(false);
  cout.sync_with_stdio(false);
  int a, b;
  int wx = 0, wy = 0;
  string s;
  cin >> a >> b >> s;
  int sz = s.size();
  for (int i = 0; i < sz; i++) {
    if (s[i] == 'R') wx++;
    if (s[i] == 'L') wx--;
    if (s[i] == 'U') wy++;
    if (s[i] == 'D') wy--;
  }
  int cx = 0, cy = 0;
  for (int i = 0; i < sz; i++) {
    if (isPossible(a, b, cx, cy, wx, wy)) return !printf("Yes");
    if (s[i] == 'R') cx++;
    if (s[i] == 'L') cx--;
    if (s[i] == 'U') cy++;
    if (s[i] == 'D') cy--;
  }
  if (isPossible(a, b, cx, cy, wx, wy)) return !printf("Yes");
  printf("No");
  return 0;
}
