#include <bits/stdc++.h>
using namespace std;
const int MAX = 100100;
int n, m, d[MAX], h[MAX];
void wczytaj_dane() {
  cin >> n >> m;
  for (int i = 0; i < (m); i++) cin >> d[i] >> h[i];
}
bool rozwiaz(int& wynik) {
  wynik = max(h[0] + (d[0] - 1), h[m - 1] + (n - d[m - 1]));
  for (int i = 0; i < (m - 1); i++) {
    int s = d[i + 1] - d[i], w = abs(h[i + 1] - h[i]),
        mini = min(h[i], h[i + 1]);
    if (s < w) return false;
    wynik = max(wynik, mini + (w + s) / 2);
  }
  return true;
}
void zrob_test() {
  wczytaj_dane();
  int wynik;
  if (rozwiaz(wynik))
    cout << wynik << '\n';
  else
    cout << "IMPOSSIBLE\n";
}
int main() {
  ios_base::sync_with_stdio(0);
  zrob_test();
  return 0;
}
