#!/usr/bin/python
ary = [[0 ,1, 1, 1000, 1], [1, 0, 1000, 1, 1000], [1, 1000, 0, 1000, 1000], [1000, 1, 1000, 0, 1000], [1, 1000, 1000, 1000, 0]]
n = 0
m = 5
book = [0 for i in range(5)]
def dfs(cur):
global n
print(cur)
n += 1
if (n == 5):
return
for i in range(5):
if (ary[cur][i] == 1) and (book[i] == 0):
book[cur] = 1
dfs(i)
return
ary2 = [[0, 2, 1000, 1000, 10], [1000, 0, 3, 1000, 7], [4, 1000, 0, 4, 1000], [1000, 1000, 1000, 0, 5], [1000, 1000, 3, 1000, 0]]
minNum = 9999
sumRoad = 0
def minLen(cur):
global minNum
global sumRoad
print(cur)
if (cur == 4):
if ( sumRoad < minNum):
minNum = sumRoad
return
for i in range(5):
if(ary2[cur][i] > 0) and (ary2[cur][i] < 1000) and (book[i] == 0):
print(cur, i)
book[i] = 1
sumRoad += ary2[cur][i]
minLen(i)
sumRoad -= ary2[cur][i]
book[i] = 0
def main():
'''
# dfs(0)
qeue = [0 for i in range(25)]
head = 0
tail = 0
qeue[tail] = 0
book[qeue[tail]] = 1
tail += 1
while (head < tail):
for i in range(5):
if (ary[qeue[head]][i] == 1) and (book[i] == 0):
book[i] = 1
qeue[tail] = i
tail += 1
head += 1
print(qeue)
'''
book[0] = 1
minLen(0)
print(minNum)
if __name__ == "__main__":
main()