import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### def solve(z): z = sorted(z) rest = 0 cost = 0 last = 0 for i in range(5): rest += z[i] - last cost += rest // (5 - i) rest %= (5 - i) last = z[i] + 1 return cost n, m = na() a = [] b = [[-1] * m for i in range(n)] for t in range(n * m): x, y = na() x -= 1 y -= 1 a.append((x, y)) b[x][y] = t ans = 10 ** 18 for i in range(n-3): for j in range(m): z = [] for k in range(5): z.append(b[(i + k) % n][j]) ans = min(solve(z), ans) print(ans)