package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var n, m, k int
fmt.Fscan(in, &n, &m, &k)
grid := make([]bool, (n+2)*(m+2))
idx := func(x, y int) int { return x*(m+2) + y }
for t := 1; t <= k; t++ {
var i, j int
fmt.Fscan(in, &i, &j)
grid[idx(i, j)] = true
for a := 0; a < 2; a++ {
for b := 0; b < 2; b++ {
x := i - a
y := j - b
if x >= 1 && y >= 1 && x+1 <= n && y+1 <= m {
if grid[idx(x, y)] && grid[idx(x+1, y)] && grid[idx(x, y+1)] && grid[idx(x+1, y+1)] {
fmt.Fprintln(out, t)
return
}
}
}
}
}
fmt.Fprintln(out, 0)
}