import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
 
 
public class Main {
	
	public static void main(String[] args) throws IOException {
		Main m = new Main();
		//*
		m.input();
		m.solve();
		m.output();
		/*/
		m.debug();
		//*/
	}
	
	public void debug() {
	}
	
	//*
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	/*/
	InputUtil in = new InputUtil();
	//*/
	PrintWriter out = new PrintWriter(System.out);
	int A = 0;
	int B = 0;
	char[] S = null;
	boolean ans = true;

	public void input() throws IOException {
		//*
		String[] tmp = br.readLine().split(" ");
		A = Integer.parseInt(tmp[0]);
		B = Integer.parseInt(tmp[1]);
		S = br.readLine().toCharArray();
		/*/
		X = in.nextInt();
		Y = in.nextInt(new int[N]);
		//*/
	}
	
	public void solve() throws IOException {
		for(int i=0; i<A+B+1; i++){
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		}
	}
	
	
	public void output() {
		out.println(ans?"Yes":"No");
		out.flush();
	}
}

//*
class InputUtil {
	//Static Fields
	private static final int BUFSIZ = 100000;
	
	//Fields
	protected InputStream in;
	private byte[] buf = null;
	private int ptr = 0;
	private int max = -1;
	private DataInputStream dis = null;
	//Constructors
	public InputUtil() {this(System.in,BUFSIZ);}
	public InputUtil(InputStream in, int bufsiz) {
		initBuf(bufsiz);
		initIn(in);
	}
	
	//Methods
	//Initializer
	protected void initIn(InputStream in) {dis = new DataInputStream(this.in = in);}
	protected void initBuf(int bufsiz) {buf = new byte[bufsiz];}
	
	//buffer operation
	private void next() throws IOException {ptr++; readBuf();}
	private void readBuf() throws IOException {
		if(ptr >= max && dis.available()>0) {
			if(max>0) Arrays.fill(buf,0,max,(byte)0);
			max = dis.read(buf);
			ptr = 0;
		}
	}
	
	//Number Input Reader/Parser
	private boolean isNum(byte b) {return '0' <= b && b <= '9'; }
	private boolean isMinus(byte b) {return b=='-'; }
 
	private int _nextInt() throws IOException {
		int sign = 1;
		int res = 0;
		byte c;
		while (!isNum(c=buf[ptr]) && !isMinus(c)) 
			next();
		if (isMinus(buf[ptr])) {
			sign = -1;
			next();
		}
		while (isNum(c=buf[ptr])) {
			res *= 10;
			res += c - '0' ;
			next();
		}
		next();
		return sign * res;
	}
	
	public int nextInt() throws IOException {
		readBuf();
		return _nextInt();
	}
 
	public int[] nextInt(int[] result) throws IOException {
		readBuf();
		for(int i=0; i<result.length; i++) {
			result[i] = _nextInt();
		}
		return result;
	}
	
	//Close 
	public void close() throws IOException {
		if(!this.in.equals(System.in)) 
			this.in.close();
	}
}
//*/ import java.io.BufferedReader; BufferedReader java.io import java.io.DataInputStream; DataInputStream java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.PrintWriter; PrintWriter java.io import java.util.ArrayList; ArrayList java.util import java.util.Arrays; Arrays java.util import java.util.LinkedList; LinkedList java.util import java.util.List; List java.util public class Main {
	
	public static void main(String[] args) throws IOException {
		Main m = new Main();
		//*
		m.input();
		m.solve();
		m.output();
		/*/
		m.debug();
		//*/
	}
	
	public void debug() {
	}
	
	//*
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	/*/
	InputUtil in = new InputUtil();
	//*/
	PrintWriter out = new PrintWriter(System.out);
	int A = 0;
	int B = 0;
	char[] S = null;
	boolean ans = true;

	public void input() throws IOException {
		//*
		String[] tmp = br.readLine().split(" ");
		A = Integer.parseInt(tmp[0]);
		B = Integer.parseInt(tmp[1]);
		S = br.readLine().toCharArray();
		/*/
		X = in.nextInt();
		Y = in.nextInt(new int[N]);
		//*/
	}
	
	public void solve() throws IOException {
		for(int i=0; i<A+B+1; i++){
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		}
	}
	
	
	public void output() {
		out.println(ans?"Yes":"No");
		out.flush();
	}
} Main //*
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) /*/
	InputUtil in = new InputUtil();
	//*/
	PrintWriter out = new PrintWriter(System.out); out new PrintWriter(System.out) int A = 0; A 0 int B = 0; B 0 char[] S = null; S null boolean ans = true; ans true public static void main(String[] args) throws IOException {
		Main m = new Main();
		//*
		m.input();
		m.solve();
		m.output();
		/*/
		m.debug();
		//*/
	} main {
		Main m = new Main();
		//*
		m.input();
		m.solve();
		m.output();
		/*/
		m.debug();
		//*/
	} Main m = new Main(); m new Main() m.input() m.input m m.solve() m.solve m m.output() m.output m String[] args args public void debug() {
	} debug {
	} public void input() throws IOException {
		//*
		String[] tmp = br.readLine().split(" ");
		A = Integer.parseInt(tmp[0]);
		B = Integer.parseInt(tmp[1]);
		S = br.readLine().toCharArray();
		/*/
		X = in.nextInt();
		Y = in.nextInt(new int[N]);
		//*/
	} input {
		//*
		String[] tmp = br.readLine().split(" ");
		A = Integer.parseInt(tmp[0]);
		B = Integer.parseInt(tmp[1]);
		S = br.readLine().toCharArray();
		/*/
		X = in.nextInt();
		Y = in.nextInt(new int[N]);
		//*/
	} String[] tmp = br.readLine().split(" "); tmp br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " A = Integer.parseInt(tmp[0]) A Integer.parseInt(tmp[0]) Integer.parseInt Integer tmp[0] tmp 0 B = Integer.parseInt(tmp[1]) B Integer.parseInt(tmp[1]) Integer.parseInt Integer tmp[1] tmp 1 S = br.readLine().toCharArray() S br.readLine().toCharArray() br.readLine().toCharArray br.readLine() br.readLine br public void solve() throws IOException {
		for(int i=0; i<A+B+1; i++){
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		}
	} solve {
		for(int i=0; i<A+B+1; i++){
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		}
	} for(int i=0; i<A+B+1; i++){
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		} int i=0; int i=0; i 0 i<A+B+1 i A+B+1 A+B+1 A B 1 i++ i++ i {
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		} {
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		} if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			} i==A i A {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			} if(S[i]!='-') {
					ans = false;
					return;
				} S[i]!='-' S[i] S i '-' {
					ans = false;
					return;
				} ans = false ans false return; {
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			} if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				} !('0' <= S[i] && S[i] <= '9') ('0' <= S[i] && S[i] <= '9') '0' <= S[i] '0' S[i] S i S[i] <= '9' S[i] S i '9' {
					ans = false;
					return;
				} ans = false ans false return; public void output() {
		out.println(ans?"Yes":"No");
		out.flush();
	} output {
		out.println(ans?"Yes":"No");
		out.flush();
	} out.println(ans?"Yes":"No") out.println out ans?"Yes":"No" ans "Yes" "No" out.flush() out.flush out class InputUtil {
	//Static Fields
	private static final int BUFSIZ = 100000;
	
	//Fields
	protected InputStream in;
	private byte[] buf = null;
	private int ptr = 0;
	private int max = -1;
	private DataInputStream dis = null;
	//Constructors
	public InputUtil() {this(System.in,BUFSIZ);}
	public InputUtil(InputStream in, int bufsiz) {
		initBuf(bufsiz);
		initIn(in);
	}
	
	//Methods
	//Initializer
	protected void initIn(InputStream in) {dis = new DataInputStream(this.in = in);}
	protected void initBuf(int bufsiz) {buf = new byte[bufsiz];}
	
	//buffer operation
	private void next() throws IOException {ptr++; readBuf();}
	private void readBuf() throws IOException {
		if(ptr >= max && dis.available()>0) {
			if(max>0) Arrays.fill(buf,0,max,(byte)0);
			max = dis.read(buf);
			ptr = 0;
		}
	}
	
	//Number Input Reader/Parser
	private boolean isNum(byte b) {return '0' <= b && b <= '9'; }
	private boolean isMinus(byte b) {return b=='-'; }
 
	private int _nextInt() throws IOException {
		int sign = 1;
		int res = 0;
		byte c;
		while (!isNum(c=buf[ptr]) && !isMinus(c)) 
			next();
		if (isMinus(buf[ptr])) {
			sign = -1;
			next();
		}
		while (isNum(c=buf[ptr])) {
			res *= 10;
			res += c - '0' ;
			next();
		}
		next();
		return sign * res;
	}
	
	public int nextInt() throws IOException {
		readBuf();
		return _nextInt();
	}
 
	public int[] nextInt(int[] result) throws IOException {
		readBuf();
		for(int i=0; i<result.length; i++) {
			result[i] = _nextInt();
		}
		return result;
	}
	
	//Close 
	public void close() throws IOException {
		if(!this.in.equals(System.in)) 
			this.in.close();
	}
} InputUtil //Static Fields
	private static final int BUFSIZ = 100000; BUFSIZ 100000 //Fields
	protected InputStream in; in private byte[] buf = null; buf null private int ptr = 0; ptr 0 private int max = -1; max -1 1 private DataInputStream dis = null; dis null //Constructors
	public InputUtil() {this(System.in,BUFSIZ);} InputUtil {this(System.in,BUFSIZ);} this(System.in,BUFSIZ) this System.in System System.in BUFSIZ public InputUtil(InputStream in, int bufsiz) {
		initBuf(bufsiz);
		initIn(in);
	} InputUtil {
		initBuf(bufsiz);
		initIn(in);
	} initBuf(bufsiz) initBuf bufsiz initIn(in) initIn in InputStream in in int bufsiz bufsiz //Methods
	//Initializer
	protected void initIn(InputStream in) {dis = new DataInputStream(this.in = in);} initIn {dis = new DataInputStream(this.in = in);} dis = new DataInputStream(this.in = in) dis new DataInputStream(this.in = in) InputStream in in protected void initBuf(int bufsiz) {buf = new byte[bufsiz];} initBuf {buf = new byte[bufsiz];} buf = new byte[bufsiz] buf new byte[bufsiz] bufsiz int bufsiz bufsiz //buffer operation
	private void next() throws IOException {ptr++; readBuf();} next {ptr++; readBuf();} ptr++ ptr readBuf() readBuf private void readBuf() throws IOException {
		if(ptr >= max && dis.available()>0) {
			if(max>0) Arrays.fill(buf,0,max,(byte)0);
			max = dis.read(buf);
			ptr = 0;
		}
	} readBuf {
		if(ptr >= max && dis.available()>0) {
			if(max>0) Arrays.fill(buf,0,max,(byte)0);
			max = dis.read(buf);
			ptr = 0;
		}
	} if(ptr >= max && dis.available()>0) {
			if(max>0) Arrays.fill(buf,0,max,(byte)0);
			max = dis.read(buf);
			ptr = 0;
		} ptr >= max && dis.available()>0 ptr >= max ptr max dis.available()>0 dis.available() dis.available dis 0 {
			if(max>0) Arrays.fill(buf,0,max,(byte)0);
			max = dis.read(buf);
			ptr = 0;
		} if(max>0) Arrays.fill(buf,0,max,(byte)0); max>0 max 0 Arrays.fill(buf,0,max,(byte)0) Arrays.fill Arrays buf 0 max (byte)0 max = dis.read(buf) max dis.read(buf) dis.read dis buf ptr = 0 ptr 0 //Number Input Reader/Parser
	private boolean isNum(byte b) {return '0' <= b && b <= '9'; } isNum {return '0' <= b && b <= '9'; } return '0' <= b && b <= '9'; '0' <= b && b <= '9' '0' <= b '0' b b <= '9' b '9' byte b b private boolean isMinus(byte b) {return b=='-'; } isMinus {return b=='-'; } return b=='-'; b=='-' b '-' byte b b private int _nextInt() throws IOException {
		int sign = 1;
		int res = 0;
		byte c;
		while (!isNum(c=buf[ptr]) && !isMinus(c)) 
			next();
		if (isMinus(buf[ptr])) {
			sign = -1;
			next();
		}
		while (isNum(c=buf[ptr])) {
			res *= 10;
			res += c - '0' ;
			next();
		}
		next();
		return sign * res;
	} _nextInt {
		int sign = 1;
		int res = 0;
		byte c;
		while (!isNum(c=buf[ptr]) && !isMinus(c)) 
			next();
		if (isMinus(buf[ptr])) {
			sign = -1;
			next();
		}
		while (isNum(c=buf[ptr])) {
			res *= 10;
			res += c - '0' ;
			next();
		}
		next();
		return sign * res;
	} int sign = 1; sign 1 int res = 0; res 0 byte c; c while (!isNum(c=buf[ptr]) && !isMinus(c)) 
			next(); !isNum(c=buf[ptr]) && !isMinus(c) !isNum(c=buf[ptr]) isNum(c=buf[ptr]) isNum c=buf[ptr] c buf[ptr] buf ptr !isMinus(c) isMinus(c) isMinus c next() next if (isMinus(buf[ptr])) {
			sign = -1;
			next();
		} isMinus(buf[ptr]) isMinus buf[ptr] buf ptr {
			sign = -1;
			next();
		} sign = -1 sign -1 1 next() next while (isNum(c=buf[ptr])) {
			res *= 10;
			res += c - '0' ;
			next();
		} isNum(c=buf[ptr]) isNum c=buf[ptr] c buf[ptr] buf ptr {
			res *= 10;
			res += c - '0' ;
			next();
		} res *= 10 res 10 res += c - '0' res c - '0' c '0' next() next next() next return sign * res; sign * res sign res public int nextInt() throws IOException {
		readBuf();
		return _nextInt();
	} nextInt {
		readBuf();
		return _nextInt();
	} readBuf() readBuf return _nextInt(); _nextInt() _nextInt public int[] nextInt(int[] result) throws IOException {
		readBuf();
		for(int i=0; i<result.length; i++) {
			result[i] = _nextInt();
		}
		return result;
	} nextInt {
		readBuf();
		for(int i=0; i<result.length; i++) {
			result[i] = _nextInt();
		}
		return result;
	} readBuf() readBuf for(int i=0; i<result.length; i++) {
			result[i] = _nextInt();
		} int i=0; int i=0; i 0 i<result.length i result.length result result.length i++ i++ i {
			result[i] = _nextInt();
		} {
			result[i] = _nextInt();
		} result[i] = _nextInt() result[i] result i _nextInt() _nextInt return result; result int[] result result //Close 
	public void close() throws IOException {
		if(!this.in.equals(System.in)) 
			this.in.close();
	} close {
		if(!this.in.equals(System.in)) 
			this.in.close();
	} if(!this.in.equals(System.in)) 
			this.in.close(); !this.in.equals(System.in) this.in.equals(System.in) this.in.equals this.in this this.in System.in System System.in this.in.close() this.in.close this.in this this.in public class Main {
	
	public static void main(String[] args) throws IOException {
		Main m = new Main();
		//*
		m.input();
		m.solve();
		m.output();
		/*/
		m.debug();
		//*/
	}
	
	public void debug() {
	}
	
	//*
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	/*/
	InputUtil in = new InputUtil();
	//*/
	PrintWriter out = new PrintWriter(System.out);
	int A = 0;
	int B = 0;
	char[] S = null;
	boolean ans = true;

	public void input() throws IOException {
		//*
		String[] tmp = br.readLine().split(" ");
		A = Integer.parseInt(tmp[0]);
		B = Integer.parseInt(tmp[1]);
		S = br.readLine().toCharArray();
		/*/
		X = in.nextInt();
		Y = in.nextInt(new int[N]);
		//*/
	}
	
	public void solve() throws IOException {
		for(int i=0; i<A+B+1; i++){
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		}
	}
	
	
	public void output() {
		out.println(ans?"Yes":"No");
		out.flush();
	}
} public class Main {
	
	public static void main(String[] args) throws IOException {
		Main m = new Main();
		//*
		m.input();
		m.solve();
		m.output();
		/*/
		m.debug();
		//*/
	}
	
	public void debug() {
	}
	
	//*
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	/*/
	InputUtil in = new InputUtil();
	//*/
	PrintWriter out = new PrintWriter(System.out);
	int A = 0;
	int B = 0;
	char[] S = null;
	boolean ans = true;

	public void input() throws IOException {
		//*
		String[] tmp = br.readLine().split(" ");
		A = Integer.parseInt(tmp[0]);
		B = Integer.parseInt(tmp[1]);
		S = br.readLine().toCharArray();
		/*/
		X = in.nextInt();
		Y = in.nextInt(new int[N]);
		//*/
	}
	
	public void solve() throws IOException {
		for(int i=0; i<A+B+1; i++){
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		}
	}
	
	
	public void output() {
		out.println(ans?"Yes":"No");
		out.flush();
	}
} Main
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
 
 
public class Main {
	
	public static void main(String[] args) throws IOException {
		Main m = new Main();
		//*
		m.input();
		m.solve();
		m.output();
		/*/
		m.debug();
		//*/
	}
	
	public void debug() {
	}
	
	//*
	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	/*/
	InputUtil in = new InputUtil();
	//*/
	PrintWriter out = new PrintWriter(System.out);
	int A = 0;
	int B = 0;
	char[] S = null;
	boolean ans = true;

	public void input() throws IOException {
		//*
		String[] tmp = br.readLine().split(" ");
		A = Integer.parseInt(tmp[0]);
		B = Integer.parseInt(tmp[1]);
		S = br.readLine().toCharArray();
		/*/
		X = in.nextInt();
		Y = in.nextInt(new int[N]);
		//*/
	}
	
	public void solve() throws IOException {
		for(int i=0; i<A+B+1; i++){
			if (i==A) {
				if(S[i]!='-') {
					ans = false;
					return;
				}
			}else{
				if(!('0' <= S[i] && S[i] <= '9')){
					ans = false;
					return;
				}
			}
		}
	}
	
	
	public void output() {
		out.println(ans?"Yes":"No");
		out.flush();
	}
}

//*
class InputUtil {
	//Static Fields
	private static final int BUFSIZ = 100000;
	
	//Fields
	protected InputStream in;
	private byte[] buf = null;
	private int ptr = 0;
	private int max = -1;
	private DataInputStream dis = null;
	//Constructors
	public InputUtil() {this(System.in,BUFSIZ);}
	public InputUtil(InputStream in, int bufsiz) {
		initBuf(bufsiz);
		initIn(in);
	}
	
	//Methods
	//Initializer
	protected void initIn(InputStream in) {dis = new DataInputStream(this.in = in);}
	protected void initBuf(int bufsiz) {buf = new byte[bufsiz];}
	
	//buffer operation
	private void next() throws IOException {ptr++; readBuf();}
	private void readBuf() throws IOException {
		if(ptr >= max && dis.available()>0) {
			if(max>0) Arrays.fill(buf,0,max,(byte)0);
			max = dis.read(buf);
			ptr = 0;
		}
	}
	
	//Number Input Reader/Parser
	private boolean isNum(byte b) {return '0' <= b && b <= '9'; }
	private boolean isMinus(byte b) {return b=='-'; }
 
	private int _nextInt() throws IOException {
		int sign = 1;
		int res = 0;
		byte c;
		while (!isNum(c=buf[ptr]) && !isMinus(c)) 
			next();
		if (isMinus(buf[ptr])) {
			sign = -1;
			next();
		}
		while (isNum(c=buf[ptr])) {
			res *= 10;
			res += c - '0' ;
			next();
		}
		next();
		return sign * res;
	}
	
	public int nextInt() throws IOException {
		readBuf();
		return _nextInt();
	}
 
	public int[] nextInt(int[] result) throws IOException {
		readBuf();
		for(int i=0; i<result.length; i++) {
			result[i] = _nextInt();
		}
		return result;
	}
	
	//Close 
	public void close() throws IOException {
		if(!this.in.equals(System.in)) 
			this.in.close();
	}
}
//*/