#include <bits/stdc++.h>
using namespace std;
bitset<1005> b[1005];
int n, m;
bool ok2(int r, int c) {
  if (r + 2 > n || c + 2 > n) return false;
  for (int i = r; i < r + 3; i++)
    for (int j = c; j < c + 3; j++) {
      if (!b[i].test(j)) return false;
    }
  return true;
}
bool ok(int r, int c) {
  if (n < 3) return false;
  for (int i = r - 2; i <= r; i++) {
    if (i <= 0) continue;
    for (int j = c - 2; j <= c; j++) {
      if (j <= 0) continue;
      if (ok2(i, j)) return true;
    }
  }
  return false;
}
int main() {
  int r, c;
  bool bOK = false;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= m; i++) {
    scanf("%d%d", &r, &c);
    b[r].set(c);
    if (ok(r, c)) {
      bOK = true;
      printf("%d\n", i);
      break;
    }
  }
  if (!bOK) printf("-1\n");
  return 0;
}
