#include <bits/stdc++.h>
int main() {
  int i, a[100], f[100], e[100], k, c = 0, j, fo, z, m, n;
  scanf("%d %d", &n, &m);
  k = n;
  if (m == 0 && n != 1) {
    printf("-1");
    return 0;
  }
  for (i = 0; i < m; i++) {
    scanf("%d %d", &a[i], &f[i]);
  }
  for (i = 0; i < m; i++) {
    if (f[i] > 1) {
      k = a[i];
      break;
    }
  }
  for (i = 1; i <= k; i++) {
    fo = 1;
    for (j = 0; j < m; j++) {
      if (a[j] % i == 0) {
        if ((a[j] / i) != f[j]) {
          fo = 0;
        }
      } else {
        if ((a[j] / i + 1) != f[j]) {
          fo = 0;
        }
      }
    }
    if (fo == 1) {
      e[c++] = i;
    }
  }
  if (n % e[0] == 0)
    z = n / e[0];
  else
    z = (n / e[0]) + 1;
  for (i = 1; i < c; i++) {
    if (n % e[i] == 0) {
      if (n / e[i] != z) {
        printf("-1");
        return 0;
      }
    } else {
      if ((n / e[i] + 1) != z) {
        printf("-1");
        return 0;
      }
    }
  }
  printf("%d", z);
  return 0;
}
