#include <iostream>
#include <math.h>
using namespace std;
typedef struct Node {
int x;
int y;
int use = 0;
}node;
node house[100];
node chicken[13];
int n, m;
int chicken_cnt, house_cnt;
int ans;
void dfs(int num, int cnt);
int main() {
cin >> n >> m;
ans = 50000;
int x;
house_cnt = 0;
chicken_cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> x;
if (x == 1) {
house[house_cnt].x = i;
house[house_cnt].y = j;
house_cnt++;
}
else if (x == 2) {
chicken[chicken_cnt].x = i;
chicken[chicken_cnt].y = j;
chicken_cnt++;
}
}
}
dfs(0, 0);
cout << ans;
return 0;
}
void dfs(int num, int cnt) {
if (num > chicken_cnt) {
return;
}
if (cnt == m) {
int mmax = 0;
for (int i = 0; i < house_cnt; i++) {
int temp = 50000;
for (int j = 0; j < chicken_cnt; j++) {
if (chicken[j].use == 1) {
int temp2 = abs(house[i].x - chicken[j].x) + abs(house[i].y - chicken[j].y);
if (temp > temp2) {
temp = temp2;
}
}
}
mmax += temp;
}
if (ans > mmax) {
ans = mmax;
}
}
chicken[num].use = 1;
dfs(num + 1, cnt + 1);
chicken[num].use = 0;
dfs(num + 1, cnt);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgc3RydWN0IE5vZGUgewoJaW50IHg7CglpbnQgeTsKCWludCB1c2UgPSAwOwp9bm9kZTsKCm5vZGUgaG91c2VbMTAwXTsKbm9kZSBjaGlja2VuWzEzXTsKaW50IG4sIG07CmludCBjaGlja2VuX2NudCwgaG91c2VfY250OwppbnQgYW5zOwoKdm9pZCBkZnMoaW50IG51bSwgaW50IGNudCk7CgppbnQgbWFpbigpIHsKCgljaW4gPj4gbiA+PiBtOwoJYW5zID0gNTAwMDA7CglpbnQgeDsKCWhvdXNlX2NudCA9IDA7CgljaGlja2VuX2NudCA9IDA7Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCWZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKSB7CgkJCWNpbiA+PiB4OwoJCQlpZiAoeCA9PSAxKSB7CgkJCQlob3VzZVtob3VzZV9jbnRdLnggPSBpOwoJCQkJaG91c2VbaG91c2VfY250XS55ID0gajsKCQkJCWhvdXNlX2NudCsrOwoJCQl9CgkJCWVsc2UgaWYgKHggPT0gMikgewoJCQkJY2hpY2tlbltjaGlja2VuX2NudF0ueCA9IGk7CgkJCQljaGlja2VuW2NoaWNrZW5fY250XS55ID0gajsKCQkJCWNoaWNrZW5fY250Kys7CgkJCX0KCQl9Cgl9CgoJZGZzKDAsIDApOwoJCgljb3V0IDw8IGFuczsKCglyZXR1cm4gMDsKfQoKdm9pZCBkZnMoaW50IG51bSwgaW50IGNudCkgewoJaWYgKG51bSA+IGNoaWNrZW5fY250KSB7CgkJcmV0dXJuOwoJfQoKCWlmIChjbnQgPT0gbSkgewoJCWludCBtbWF4ID0gMDsKCQlmb3IgKGludCBpID0gMDsgaSA8IGhvdXNlX2NudDsgaSsrKSB7CgkJCWludCB0ZW1wID0gNTAwMDA7CgkJCWZvciAoaW50IGogPSAwOyBqIDwgY2hpY2tlbl9jbnQ7IGorKykgewoJCQkJCgkJCQlpZiAoY2hpY2tlbltqXS51c2UgPT0gMSkgewoJCQkJCWludCB0ZW1wMiA9IGFicyhob3VzZVtpXS54IC0gY2hpY2tlbltqXS54KSArIGFicyhob3VzZVtpXS55IC0gY2hpY2tlbltqXS55KTsKCQkJCQlpZiAodGVtcCA+IHRlbXAyKSB7CgkJCQkJCXRlbXAgPSB0ZW1wMjsKCQkJCQl9CgkJCQl9CgkJCX0KCQkJbW1heCArPSB0ZW1wOwoJCX0KCgkJaWYgKGFucyA+IG1tYXgpIHsKCQkJYW5zID0gbW1heDsKCQl9CgoJfQoKCWNoaWNrZW5bbnVtXS51c2UgPSAxOwoJZGZzKG51bSArIDEsIGNudCArIDEpOwoJY2hpY2tlbltudW1dLnVzZSA9IDA7CglkZnMobnVtICsgMSwgY250KTsKfQ==