#include <bits/stdc++.h>
using namespace std;
int dir[123];
int dx[] = {-1, 0, 1, 0};
int dy[] = {0, 1, 0, -1};
int a, b;
bool can(long long fx, long long fy, long long sx, long long sy) {
  cerr << "fx, fy = " << fx << ' ' << fy << " ; sx = " << sx << ' ' << sy
       << endl;
  if (fx == a && fy == b) return true;
  if ((a - fx) * sx < 0) return false;
  if ((b - fy) * sy < 0) return false;
  if (sx == 0 && a - fx != 0) return false;
  if (sy == 0 && b - fy != 0) return false;
  if (sx != 0 && a - fx == 0) return false;
  if (sy != 0 && b - fy == 0) return false;
  set<int> s;
  if (sx) {
    if ((a - fx) % sx == 0)
      s.insert((a - fx) / sx);
    else
      return false;
  }
  if (sy) {
    if ((b - fy) % sy == 0)
      s.insert((b - fy) / sy);
    else
      return false;
  }
  return s.size() <= 1;
}
int main() {
  dir['L'] = 0;
  dir['U'] = 1;
  dir['R'] = 2;
  dir['D'] = 3;
  cin >> a >> b;
  string s;
  cin >> s;
  int shiftx = 0;
  int shifty = 0;
  for (size_t i = 0; i < s.size(); ++i) {
    shiftx += dx[dir[int(s[i])]];
    shifty += dy[dir[int(s[i])]];
  }
  cerr << "shift = " << shiftx << ' ' << shifty << endl;
  int sx = 0, sy = 0;
  for (size_t i = 0; i < s.size(); ++i) {
    if (can(sx, sy, shiftx, shifty)) {
      cerr << "can " << sx << ' ' << sy << endl;
      cout << "Yes" << endl;
      return 0;
    }
    sx += dx[dir[int(s[i])]];
    sy += dy[dir[int(s[i])]];
  }
  if (can(sx, sy, shiftx, shifty)) {
    cerr << "can " << sx << ' ' << sy << endl;
    cout << "Yes" << endl;
    return 0;
  }
  cout << "No" << endl;
  return 0;
}
