#include<iostream>
#include<vector>
#include<cmath>
using namespace std;

#define V vector<int>

int main() {
	int N, M;
	cin >> N >> M;

	V s(M), c(M);
	for (int i = 0; i < M; i++) cin >> s[i] >> c[i];//s->左からの桁

	for (int i = ((N == 1) ? 0; pow(10, N - 1)); i < pow(10, N); i++) {//3桁->10^2　すべての数を調べる
		V digits(N);
		fill(ALL(digits), 0);//指定された範囲を埋める
		int tmp = i;
		for (int j = 0; j < N; j++) {
			digits[j] = tmp % 10;//右の桁から配列に格納
			tmp /= 10;
		}

		bool flag = true;
		for (int j = 0; j < M; j++)
			if (digits[N - s[j]] != c[j]) flag = false;//一つの桁に二回代入されても片方でfalseになるのでok

		if (flag) {
			cout << i << endl;
			return 0;
		}
	}
	cout << -1 << endl;
	return 0;
}