#include <bits/stdc++.h>
long long int finv[1000000];
long long int fac[1000000];
long long int inv[1000000];
long long int usort(const void *a, const void *b) {
  return *(long long int *)a - *(long long int *)b;
}
long long int dsort(const void *a, const void *b) {
  return *(long long int *)b - *(long long int *)a;
}
long long int ssort(const void *a, const void *b) {
  return strcmp((char *)a, (char *)b);
}
long long int min(long long int a, long long int b) {
  if (a > b) return b;
  return a;
}
long long int max(long long int a, long long int b) {
  if (a > b) return a;
  return b;
}
long long int z(long long int a) { return max(a, -a); }
long long int gcd(long long int a, long long int b) {
  if (!b) {
    return a;
  } else {
    return gcd(b, a % b);
  }
}
long long int lcm(long long int a, long long int b) {
  return a * b / gcd(a, b);
}
long long int kt(long long int a) {
  if (!a) return 1;
  long long int sum = 0;
  while (a) {
    a /= 10;
    sum++;
  }
  return sum;
}
long long int ks(long long int a) {
  long long int sum = 0;
  while (a) {
    sum += a % 10;
    a /= 10;
  }
  return sum;
}
void nCrReady() {
  fac[0] = fac[1] = 1;
  finv[0] = finv[1] = 1;
  inv[1] = 1;
  for (int i = 2; i < 1000000; i++) {
    fac[i] = fac[i - 1] * i % 1000000007;
    inv[i] = 1000000007 - inv[1000000007 % i] * (1000000007 / i) % 1000000007;
    finv[i] = finv[i - 1] * inv[i] % 1000000007;
  }
}
long long int nCr(long long int n, long long int k) {
  return fac[n] * (finv[k] * finv[n - k] % 1000000007) % 1000000007;
}
long long int modpow(long long int a, long long int b) {
  long long int ret = 1;
  for (; b > 0; b >>= 1, a = (long long int)a * a % 1000000007)
    if (b % 2 == 1) ret = ret * a % 1000000007;
  return ret;
}
int b[9];
int main(void) {
  int n, m;
  scanf("%d", &n);
  scanf("%d", &m);
  int s, c;
  int x[n];
  for (int i = 0; i < n; i++) x[i] = -1;
  for (int i = 0; i < m; i++) {
    scanf("%d", &s);
    s--;
    scanf("%d", &c);
    if (x[s] != -1 && x[s] != c) {
      printf("%d\n", -1);
      return 0;
    }
    x[s] = c;
  }
  int ans = 0;
  for (int i = 0; i < n; i++) {
    ans *= 10;
    if (x[i] != -1) ans += x[i];
  }
  if (kt(ans) != n) {
    printf("%d\n", -1);
    return 0;
  }
  printf("%d\n", ans);
  return 0;
}
