#include <bits/stdc++.h>
using namespace std;
template <class T>
ostream& operator<<(ostream& out, vector<T> v) {
  out << "[";
  for (int(i) = int(0); i < int(int((v).size())); ++i) {
    if (i) out << ", ";
    out << v[i];
  }
  out << "]";
  return out;
}
template <class A, class B>
ostream& operator<<(ostream& out, pair<A, B> p) {
  out << "<" << p.first << ", " << p.second << ">";
  return out;
}
template <class T>
ostream& operator<<(ostream& out, set<T> s) {
  out << "(";
  for (typeof((s).begin()) it = (s).begin(); it != (s).end(); ++it) {
    if (it != s.begin()) out << ", ";
    out << *it;
  }
  out << ")";
  return out;
}
template <class A, class B>
ostream& operator<<(ostream& out, map<A, B> m) {
  out << "{";
  for (typeof((m).begin()) it = (m).begin(); it != (m).end(); ++it) {
    if (it != m.begin()) out << ", ";
    out << *it;
  }
  out << "}";
  return out;
}
long long a, b;
bool check(long long x, long long y, long long x_delta, long long y_delta) {
  long long xc = a - x;
  long long yc = b - y;
  long long mul;
  if (x_delta == 0 && y_delta == 0)
    mul = 0;
  else if (x_delta == 0) {
    mul = yc / y_delta;
  } else {
    mul = xc / x_delta;
  }
  return mul >= 0 && x_delta * mul + x == a && y_delta * mul + y == b;
}
int main() {
  cin >> a >> b;
  vector<long long> X, Y;
  X.push_back(0);
  Y.push_back(0);
  long long x = 0, y = 0;
  string s;
  cin >> s;
  for (typeof((s).begin()) it = (s).begin(); it != (s).end(); ++it) {
    if (*it == 'U') {
      y++;
    } else if (*it == 'D') {
      y--;
    } else if (*it == 'L') {
      x--;
    } else if (*it == 'R') {
      x++;
    }
    X.push_back(x);
    Y.push_back(y);
  }
  for (int(i) = int(0); i < int(int((X).size())); ++i) {
    if (check(X[i], Y[i], x, y)) {
      cout << "Yes" << endl;
      exit(0);
    }
  }
  cout << "No" << endl;
}
