#include <bits/stdc++.h>
struct node {
  int s, c;
} a[100];
int n, m, ans[100];
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; ++i) scanf("%d%d", &a[i].s, &a[i].c);
  for (int i = 1; i <= m; ++i)
    if (!ans[a[i].s])
      ans[a[i].s] = a[i].c;
    else if (ans[a[i].s] != a[i].c)
      ans[0] = -1;
  for (int i = 1; i <= m; ++i)
    if (a[i].s == 1 && a[i].c == 0) ans[0] = -1;
  if (n > 1 && !ans[1]) ans[1] = 1;
  if (ans[0] == -1) {
    printf("-1");
    return 0;
  }
  for (int i = 1; i <= n; ++i) printf("%d", ans[i]);
  return 0;
}
