n = int(input())
g = [list(map(int, input().split())) for _ in range(n * n)]
ans = [[-1] * n for _ in range(n)]
ans[1][1] = g[0][0]
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def op1(i):
seatlist = []
for x in range(n):
for y in range(n):
liked = 0
blank = 0
if ans[x][y] != -1:
continue
for j in range(4):
nx, ny = x + dx[j], y + dy[j]
if nx < 0 or ny < 0 or nx >= n or ny >= n:
continue
if ans[nx][ny] in g[i][1:]:
liked += 1
if ans[nx][ny] == -1:
blank += 1
seatlist.append((liked, blank, x, y))
return seatlist
for i in range(1, n*n):
seatlist = op1(i)
seatlist.sort(reverse=True)
seatlist2 = []
liked, blank, x, y = seatlist[0]
for a, b, c, d in seatlist:
if a == liked and b == blank:
seatlist2.append((a, b, c, d))
if len(seatlist2) == 1:
a, b, c, d = seatlist2[0]
ans[c][d] = g[i][0]
continue
seatlist2.sort()
a, b, c, d = seatlist2[0]
ans[c][d] = g[i][0]
pans = 0
for i in range(n):
for j in range(n):
cnt = 0
for k in range(n*n):
if g[k][0] == ans[i][j]:
e = k
break
for k in range(4):
ni, nj = i + dx[k], j + dy[k]
if ni < 0 or nj < 0 or ni >= n or nj >= n:
continue
if ans[ni][nj] in g[e][1:]:
cnt += 1
if cnt == 1:
pans += 1
elif cnt == 2:
pans += 10
elif cnt == 3:
pans += 100
elif cnt == 4:
pans += 1000
print(pans)