# Topic : Brute_Force  _ 치킨 배달
#
# Python 3 : 540ms
# PyPy 3 : 156ms
# O(N**3)의 시간이 걸리긴하다. 근데 테스트 케이스가 적어서 맞은듯

from itertools import combinations
import sys

N, M = map(int,sys.stdin.readline().split())

city = [ list(map(int,sys.stdin.readline().split())) for _ in range(N)]

# 집과 치킨집 인덱스 저장
home = [] # 집 인덱스 저장
beer = [] # 치킨집 인덱스 저장
for i in range(len(city)):
  for j in range(len(city[0])):
    if city[i][j] == 1:
      home.append((i,j))
    elif city[i][j] == 2:
      beer.append((i,j))

# 최대 개수가 들어간 치킨집의 조합 
beer_comb = combinations(beer,M)

# 각 beer_comb 들의 최적의 거리들
beer_dists = []

# 치킨집들의 조합중 각 home과의 거리 최소값들의 합이 최소인 조합을 구한다.
for bc in beer_comb:
  dist_sum = 0
  # 각 home 중 가장 거리가 가까운 beer의 거리(dist)를 find
  for h in home:  
    dist = 50
    for b in bc: # 하나의 집에서 가장 가까운 치킨집을 구하는 loop
      tmp = abs(h[0] - b[0]) + abs(h[1] - b[1]) 
      if tmp < dist:
        dist = tmp
    dist_sum += dist # 가장 가까운 길이를 구했으면 조합의 총 치킨 거리에 sum
  beer_dists.append(dist_sum)

print(min(beer_dists))