//written by libra9z
//#define LOCAL_TIME
//#define FILE_JUDGE
#define __USE_EXT__
#define __USE_TR1__
#ifndef __cplusplus
#error This does not a G++ program!! Please require it...
#endif
#pragma comment(linker, "/stack:20000000")
#pragma warning(disable:4146)
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#define _CRT_SECURE_NO_WARNINGS
#include <immintrin.h>
#ifdef __USE_TR1__
#include <bits/stdtr1c++.h>
#else
#include <bits/stdc++.h>
#endif
using namespace std;
#ifdef __USE_EXT__
#include <ext/numeric>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/priority_queue.hpp>
#include <ext/pb_ds/tag_and_trait.hpp>
#include <ext/pb_ds/trie_policy.hpp>
#include <ext/rope>
template <class X,class C=less<X>,class Y=__gnu_pbds::null_type>
using ordered_map=__gnu_pbds::tree<X,Y,C,__gnu_pbds::rb_tree_tag,__gnu_pbds::tree_order_statistics_node_update>;
template <class X,class C=greater<X>>
using heap=__gnu_pbds::priority_queue<X, C>;
#endif
typedef long long ll;
typedef unsigned long long ull;
typedef pair <int,int> pii;
#define rep(i,n) for (int i=0;i<(n);i++)
#define Rep(i,a,b) for (int i=(a);i<=(b);i++)
#define rrep(i,n) for (int i=(n)-1;i>=0;i--)
#define rRep(i,a,b) for (int i=(a);i>=b;i--)
#define repit(it,a) for ((__typeof(a.begin())) it=a.begin();it!=a.end();it++)
#define repx(x,a) for (auto x:a)
#define mp make_pair()
#define X first
#define Y second
#define sqr(x) ((x) * (x))
#define eprintf(...) fprintf(stderr, __VA_ARGS__),fflush(stderr)
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend()
#define reunique(v) v.erase(unique(v.begin(),v.end()))
#define prl cerr << "called: " << __LINE__ << endl
#define eaq(n,x) __typeof(x) n=x;
#define RET(p,x) return p<<x<<endl,0;
#define Debug(x) cerr<<#x<<" = "<<x<<endl
#define Debug22(x,y) cerr<<#x<<" = "<<x<<" , "<<#y<<" = "<<y<<endl
#define Debug2(x, y) cerr<<"("<<#x<<", "<<#y<<") = ("<<x<<", "<<y<<")\n"
#define Debug3(x,y,z) cerr<<"("<<#x<<", "<<#y<<", "<<#z<<") = ("<<x<<", "<<y<<", "<<z<<")\n"
#define Debug_arr(v,n) for(int i=0;i<n;++i) cerr<<#v<<"["<<i<<"]"<<" = "<<v[i]<<endl
#define FOPEN(x) string filename=#x;const string filein=filename+".in",fileout=filename+".out";\
freopen(filein.c_str(),"r",stdin);freopen(fileout.c_str(),"w",stdout)
template <typename T> void read(T &a) {cin>>a;}
template <typename T,typename... Args> void read(T& a,Args&... b){read(a);read(b...);}
template <typename T> void write(T a) {cout<<a;}
template <typename T,typename... Args> void write(T a,Args... b){write(a);write(b...);}
template <class T> bool uax(T &a,const T &b) {if (a<b) {a=b;return 1;} return 0;}
template <class T> bool uin(T &a,const T &b) {if (b<a) {a=b;return 1;} return 0;}
unsigned long long rdtsc()
{
	unsigned long long ret = 0;
	#ifdef __clang__
    return __builtin_readcyclecounter();
	#endif
	#ifndef _MSC_VER
    asm volatile("rdtsc" : "=A" (ret) : :);
	#endif
	return ret;
}
const int inf=1e9;
template <class T=int>
T Rand(T l=0,T r=(T)inf)
{
	static mt19937 gen;
	uniform_int_distribution <T> dist(l,r);
	return dist(gen);
}
const ll h1=999999937;
const ll h2=1000000009;
const ll mod=1000000007;
const ll mod2=1000000009;
const int dx[]={1,0,-1,0,1,0,-1,0};
const int dy[]={0,1,0,-1,1,0,-1,0};
const double pi=3.141592653589793;
const bool multitests=false,alotoftests=false;
stringstream sinout;
int a,b;
string s;
bool solve(int __test)
{
	scanf("%d%d",&a,&b);
	cin>>s;
	rep(i,a)
	{
		if ('0'>s[i] || s[i]>'9')
		{
			puts("No");
			return 0;
		}
	}
	if (s[a]!='-')
	{
		puts("No");
		return 0;
	}
	for (int i=a+1;i<a+1+b;i++)
	{
		if ('0'>s[i] || s[i]>'9')
		{
			puts("No");
			return 0;
		}
	}
	puts("Yes");
	return false;
}
signed main()
{
	rdtsc();
	ios_base::sync_with_stdio();cin.tie();cout.tie();
	#ifdef FILE_JUDGE
	FOPEN(inoutput);
	#endif
	int __tests,__test=1;
	(multitests==true)?((alotoftests==false)?scanf("%d",&__tests):__tests=inf):__tests=1;
	for (;(alotoftests==true && multitests==true)?(!solve(__test)):(__test<=__tests);++__test)
	{
		if (!(multitests==true && alotoftests==true))
		{
			solve(__test);
		}
	}
	#ifdef LOCAL_TIME
	eprintf("\n\nSystem Time : %d ms",clock());
	#endif
//	fflush(stdout);fflush(stderr);
	return 0;
}


Measured memory_bytes: 384