#include <bits/stdc++.h>   using namespace std;   const int MM = 1005;   const long long MOD = 1000000007;   int vis[MM][MM] = {0};   int n, m, k;   bool judge(int x, int y) {     if (x - 1 >= 0 && y - 1 >= 0) {       if (vis[x - 1][y - 1] && vis[x - 1][y] && vis[x][y - 1]) return true;     }     if (x - 1 >= 0 && y + 1 < m) {       if (vis[x - 1][y + 1] && vis[x - 1][y] && vis[x][y + 1]) return true;     }     if (x + 1 < n && y - 1 >= 0) {       if (vis[x + 1][y - 1] && vis[x][y - 1] && vis[x + 1][y]) return true;     }     if (x + 1 < n && y + 1 < m) {       if (vis[x + 1][y + 1] && vis[x + 1][y] && vis[x][y + 1]) return true;     }     return false;   }   int main() {     int ans = 0, flag = 0;     scanf( %d%d%d , &n, &m, &k);     for (int i = 0; i < k; i++) {       int x, y;       scanf( %d%d , &x, &y);       x--;       y--;       vis[x][y] = 1;       if (!flag && judge(x, y)) {         ans = i + 1;         flag = 1;       }     }     if (!flag)       puts( 0 );     else       printf( %d n , ans);     return 0;   }   