#include <bits/stdc++.h>
using namespace std;
int n, m, a[1005][1005];
int dx[] = {0, 0, 0, -1, -1, -1, -2, -2, -2};
int dy[] = {0, -1, -2, 0, -1, -2, 0, -1, -2};
bool interior(int x, int y) { return (x >= 1 && x <= n && y >= 1 && y <= n); }
bool check(int x, int y) {
  int i, j;
  for (i = x; i <= x + 2; i++) {
    for (j = y; j <= y + 2; j++) {
      if (a[i][j] == 0) return 0;
    }
  }
  return 1;
}
int main() {
  int i, j, x, y;
  cin >> n >> m;
  for (i = 1; i <= m; i++) {
    cin >> x >> y;
    a[x][y] = 1;
    for (j = 0; j < 9; j++) {
      if (interior(x + dx[j], y + dy[j]) && check(x + dx[j], y + dy[j])) {
        cout << i;
        return 0;
      }
    }
  }
  cout << -1;
  return 0;
}
