#include <bits/stdc++.h>
int minimum(int a, int b) { return a < b ? a : b; }
int maximum(int a, int b) { return a > b ? a : b; }
const long long mod = 1000000007;
int gc(int n, int s) {
  if (s == 0)
    return n % 10;
  else
    return gc(n / 10, s - 1);
}
int main() {
  int N, M;
  scanf("%d %d", &N, &M);
  auto s = new int[M];
  auto c = new int[M];
  for (int i = 0; i < M; i++) scanf("%d %d", s + i, c + i);
  int res = -1;
  int ini, end;
  switch (N) {
    case 1:
      ini = 0;
      end = 10;
    case 2:
      ini = 10;
      end = 100;
    case 3:
      ini = 100;
      end = 1000;
  }
  for (int i = ini; i < end; i++) {
    bool ok = true;
    for (int j = 0; j < M; j++) {
      if (gc(i, N - s[j]) != c[j]) ok = false;
    }
    if (ok) {
      res = i;
      break;
    }
  }
  printf("%d", res);
  return 0;
}
