# 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))