#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int main() {
  int i, n, m;
  scanf("%d%d", &n, &m);
  if (n == 1 && m == 0) {
    printf("1");
    return 0;
  }
  int x[m][2];
  for (i = 0; i < m; i++) {
    scanf("%d%d", &x[i][0], &x[i][1]);
  }
  int ans = 0;
  for (i = 1; i <= 1000; i++) {
    int cert = 1;
    for (int j = 0; j < m; j++) {
      if (x[j][0] > i * x[j][1] || x[j][0] <= (i) * (x[j][1] - 1)) {
        cert = 0;
      }
    }
    if (cert) {
      v.push_back(i);
    }
  }
  if (v.size() == 0) {
    printf("-1");
    return 0;
  } else {
    for (int i = 0; i < v.size(); i++) {
      int k = n;
      while (k % v[i] != 0) {
        k++;
      }
      k /= v[i];
      if (ans == 0 || ans == k) {
        ans = k;
      } else {
        printf("-1");
        return 0;
      }
    }
    printf("%d", ans);
  }
}
