If there is an integer not less than 0 satisfying the following conditions, print the smallest such integer; otherwise, print `-1`.

* The integer has exactly N digits in base ten. (We assume 0 to be a 1-digit integer. For other integers, leading zeros are not allowed.)
* The s_i-th digit from the left is c_i. \left(i = 1, 2, \cdots, M\right)

Constraints

* All values in input are integers.
* 1 \leq N \leq 3
* 0 \leq M \leq 5
* 1 \leq s_i \leq N
* 0 \leq c_i \leq 9

Input

Input is given from Standard Input in the following format:


N M
s_1 c_1
\vdots
s_M c_M


Output

Print the answer.

Examples

Input

3 3
1 7
3 2
1 7


Output

702


Input

3 2
2 1
2 3


Output

-1


Input

3 1
1 0


Output

-1
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class Main {

	public static void main(String[] args) {
		try (Stream<String> lines = new BufferedReader(new InputStreamReader(System.in)).lines()) {
			new Main().exec(lines.toArray(String[]::new));
		}
	}

	void exec(String[] args) {
		int N = Integer.parseInt(args[0].split(" ")[0]);
		Map<Integer, Set<Integer>> map = new HashMap<>();
		IntStream
			.range(1, args.length)
			.mapToObj(i -> Stream
				.of(args[i].split(" "))
				.map(Integer::valueOf)
				.toArray(Integer[]::new))
			.forEach(is -> map.computeIfAbsent(is[0], i -> new HashSet<>()).add(is[1]));
		int[] a = IntStream
			.rangeClosed(1, N)
			.map(i -> !map.containsKey(i) ? -1 : map.get(i).size() != 1 ? 10 : map.get(i).toArray(new Integer[1])[0])
			.toArray();
		System.out.println(N > 1 && a[0] == 0 || IntStream.of(a).anyMatch(i -> i > 9) ? -1 : IntStream
			.range(0, N)
			.map(i -> (int)(Math.max(a[i], N > 1 && i == 0 ? 1 : 0) * Math.pow(10, N - i - 1)))
			.sum());
	}

}