#include <bits/stdc++.h>
using namespace std;
bool cuadricula[1005][100005];
int n, m;
bool esCentroCubo(int ni, int mj) {
  for (int i = -1; i < 2; i++) {
    for (int j = -1; j < 2; j++) {
      if ((ni + i) < 1 || (mj + j) < 1 || (ni + i) > n || (mj + j) > n ||
          !cuadricula[ni + i][mj + j])
        return false;
    }
  }
  return true;
}
bool procesa(int ni, int mj) {
  bool sano = true;
  for (int i = -1; i < 2; i++) {
    for (int j = -1; j < 2; j++) {
      if (esCentroCubo(ni + i, mj + j)) return true;
      if ((ni + i) < 1 || (mj + j) < 1 || (ni + i) > n || (mj + j) > n ||
          !cuadricula[ni + i][mj + j])
        sano = false;
    }
  }
  return sano;
}
int main() {
  memset(cuadricula, false, sizeof(bool) * 1000 * 100000);
  cin >> n >> m;
  int ni, mj;
  for (int i = 1; i <= m; i++) {
    cin >> ni >> mj;
    cuadricula[ni][mj] = true;
    if (procesa(ni, mj)) {
      cout << i;
      return 0;
    }
  }
  cout << -1;
  return 0;
}
