N, L = map(int,input().split())
board = [list(map(int,input().split())) for _ in range(N)]
board_T = [[0]*N for _ in range(N)]
for i in range(N):
for j in range(N):
board_T[i][j] = board[j][i]
# 가로 방향
def count_horizontal(board):
count = 0
for i in range(N):
visited = [0]*N
idx = 1
h = board[i][0]
is_possible = True
while idx < N:
if board[i][idx] == h:
pass
else:
if board[i][idx] == h-1:
if idx+L > N or board[i][idx:idx+L] != [h-1]*L:
is_possible = False
break
else:
visited[idx:idx+L] = [1]*L
idx += L
h -= 1
continue
elif board[i][idx] == h+1:
if idx-L < 0 or board[i][idx-L:idx] != [h]*L or visited[idx-L:idx]!=[0]*L:
is_possible = False
break
else:
visited[idx-L:idx] = [1]*L
h += 1
else:
is_possible = False
break
idx += 1
if is_possible:
count += 1
return count
count = count_horizontal(board)
count += count_horizontal(board_T)
print(count)