#include <bits/stdc++.h>
using namespace std;
const int EPS = 1e-6;
const int INF = (int)(INT_MAX - 100);
const long long mod = (int)(1e+9 + 7);
const int N = (int)(0);
int dir[5] = {1, 0, -1, 0, 1};
string z = "RDLU";
map<char, int> c;
int x, y;
vector<pair<int, int> > node;
int main() {
  int a, b;
  string s;
  for (int i = 0; i < 4; i++) c[z[i]] = i;
  cin >> a >> b >> s;
  node.push_back({x, y});
  for (int i = 0; i < int(s.size()); i++) {
    x += dir[c[s[i]]];
    y += dir[c[s[i]] + 1];
    node.push_back({x, y});
  }
  for (pair<int, int> p : node) {
    if ((x == 0 && p.first != a) || (y == 0 && p.second != b)) continue;
    if (x != 0)
      if ((a - p.first) % x != 0 || (a - p.first) / x < 0) continue;
    if (y != 0)
      if ((b - p.second) % y != 0 || (b - p.second) / y < 0) continue;
    if (x == 0 || y == 0) return cout << "Yes", 0;
    ;
    if ((a - p.first) / x == (b - p.second) / y) return cout << "Yes", 0;
    ;
  }
  cout << "No";
  return 0;
}
