#include <algorithm>
#include <cstring>
#include <deque>
#include <fstream>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <vector>
using namespace std;
using ll = long long;
#define fst first
#define snd second

/* clang-format off */
template <class T, size_t D> struct _vec { using type = vector<typename _vec<T, D - 1>::type>; };
template <class T> struct _vec<T, 0> { using type = T; };
template <class T, size_t D> using vec = typename _vec<T, D>::type;
template <class T> vector<T> make_v(size_t size, const T& init) { return vector<T>(size, init); }
template <class... Ts> auto make_v(size_t size, Ts... rest) { return vector<decltype(make_v(rest...))>(size, make_v(rest...)); }
/* clang-format on */

int main() {
  int A, B;
  string S;
  while (cin >> A >> B >> S) {
    bool ok = true;
    for (int i = 0; i < A; i++) ok &= !!isnumber(S[i]);
    ok &= S[A] == '-';
    for (int i = 0; i < B; i++) ok &= !!isnumber(S[A + i + 1]);
    cout << (ok ? "Yes" : "No") << endl;
  }
  return 0;
}
