#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1005;
int n, m;
bool a[MAXN][MAXN];
bool can(int kx, int ky) {
  if (kx < 0 || kx >= n || ky < 0 || ky >= n) return false;
  return a[kx][ky];
}
bool kbadrat(int x, int y) {
  for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
      bool f = true;
      for (int k = 0; k < 3; k++) {
        if (!f) break;
        for (int l = 0; l < 3; l++) {
          if (!can(x + k - i, y + l - j)) {
            f = false;
            break;
          }
        }
      }
      if (f) return true;
    }
  }
  return false;
}
int main() {
  scanf("%d %d", &n, &m);
  pair<int, int> kor;
  for (int i = 0; i < m; i++) {
    scanf("%d %d", &kor.first, &kor.second);
    kor.first--;
    kor.second--;
    a[kor.first][kor.second] = true;
    if (kbadrat(kor.first, kor.second)) {
      printf("%d", i + 1);
      return 0;
    }
  }
  printf("-1");
  return 0;
}
