#include <bits/stdc++.h>
using namespace std;
struct NUM {
  int s;
  int c;
};
int main(void) {
  int N, M;
  cin >> N >> M;
  NUM *t;
  t = new NUM[M];
  for (int i = 0; i < M; i++) {
    cin >> t[i].s >> t[i].c;
  }
  int ans = 0;
  int tmp = 0;
  sort(t, t + M, [](const NUM &x, const NUM &y) { return x.s < y.s; });
  for (int i = 0; i < M; i++) {
    if (t[i].s == 1 && t[i].c > 0) {
      if ((int)(log10(ans) + 1) < N) {
        ans += 100 * t[i].c;
      } else {
        tmp = ans;
        ans = min(tmp, ans - 100 * (int)(ans / 100) + 100 * t[i].c);
      }
    }
    if (t[i].s == 2 && t[i].c > 0) {
      if ((ans / 10) % 10 != 0) {
        tmp = ans;
        ans = min(tmp, ans - 10 * (int)((ans / 10) % 10) + 10 * t[i].c);
      } else {
        ans += 10 * t[i].c;
      }
    }
    if (t[i].s == 3 && t[i].c > 0) {
      if (ans % 10 != 0) {
        tmp = ans;
        ans = min(tmp, ans - (int)(ans % 10) + t[i].c);
      } else {
        ans += t[i].c;
      }
    }
  }
  if ((int)(log10(ans) + 1) == N) {
    cout << ans << endl;
  } else {
    cout << -1 << endl;
  }
  return 0;
}
