#include <bits/stdc++.h>
using namespace std;
int const maxn = (int)1e5 + 111;
int const inf = (1 << 30) - 1;
int A, B;
string second;
bool can(int a, int b, int x, int y) {
  if (x == a && y == b) {
    return true;
  } else if (x == 0 && y == 0) {
    return false;
  } else if (x == 0) {
    if (a != 0) {
      return false;
    } else if (y == 0) {
      if (b == 0) {
        return true;
      } else
        return false;
    } else if (b % y == 0 && (b / y) > 0) {
      return true;
    } else
      return false;
  } else if (y == 0) {
    if (b != 0) {
      return false;
      cout << "No" << endl;
    } else if (x == 0) {
      if (a == 0) {
        return true;
        cout << "Yes" << endl;
      } else
        return false;
    } else if (a % x == 0 && (a / x) > 0) {
      return true;
      cout << "Yes" << endl;
    } else
      return false;
  } else if (a % x == 0 && b % y == 0 && (a / x) > 0 && a / x == b / y) {
    return true;
  } else {
    return false;
  }
}
bool oneTime(int x, int y) {
  if (x == A && y == B) return true;
  for (int i = 0; i < second.length(); i++) {
    if (second[i] == 'U') {
      y++;
    } else if (second[i] == 'R') {
      x++;
    } else if (second[i] == 'L') {
      x--;
    } else {
      y--;
    }
    if (x == A && y == B) return true;
  }
  return false;
}
int main() {
  cin >> A >> B;
  cin >> second;
  int x = 0, y = 0;
  if (oneTime(x, y)) {
    cout << "Yes" << endl;
    return 0;
  }
  for (int i = 0; i < second.length(); i++) {
    if (second[i] == 'U') {
      y++;
    } else if (second[i] == 'R') {
      x++;
    } else if (second[i] == 'L') {
      x--;
    } else {
      y--;
    }
  }
  for (int i = A - 111; i <= A + 111; i++) {
    for (int j = B - 111; j <= B + 111; j++) {
      if (can(i, j, x, y)) {
        if (oneTime(i, j)) {
          cout << "Yes" << endl;
          return 0;
        }
      }
    }
  }
  cout << "No" << endl;
  return 0;
}
