def next(n,a):
a=a[1:]
for i in range(n-2,-1,-1):
if i==0:
return -1
elif a[i-1]<a[i]:
for j in range(n-2,i-1,-1):
if a[i-1]<a[j]:
t=a[j]
a[j]=a[i-1]
a[i-1]=t
break
return [0]+a[:i]+list(reversed(a[i:]))
return 0
n=int(input())
a=[]
for _ in range(n):
a.append(list(map(int,input().split(' '))))
b=[x for x in range(n)]
low=-1
while b!=-1:
ans=0
c=0
for i in range(n-1):
if a[b[i]][b[i+1]]==0:
c=1
break
else:
ans+=a[b[i]][b[i+1]]
if c==0:
if a[b[n-1]][b[0]]!=0:
ans+=a[b[n-1]][b[0]]
if low>ans or low==-1:
low=ans
b=next(n,b)
print(low)
ZGVmIG5leHQobixhKToKICAgIGE9YVsxOl0KICAgIGZvciBpIGluIHJhbmdlKG4tMiwtMSwtMSk6CiAgICAgICAgaWYgaT09MDoKICAgICAgICAgICAgcmV0dXJuIC0xCiAgICAgICAgZWxpZiBhW2ktMV08YVtpXToKICAgICAgICAgICAgZm9yIGogaW4gcmFuZ2Uobi0yLGktMSwtMSk6CiAgICAgICAgICAgICAgICBpZiBhW2ktMV08YVtqXToKICAgICAgICAgICAgICAgICAgICB0PWFbal0KICAgICAgICAgICAgICAgICAgICBhW2pdPWFbaS0xXQogICAgICAgICAgICAgICAgICAgIGFbaS0xXT10CiAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgcmV0dXJuIFswXSthWzppXStsaXN0KHJldmVyc2VkKGFbaTpdKSkKICAgIHJldHVybiAwCgoKbj1pbnQoaW5wdXQoKSkKYT1bXQpmb3IgXyBpbiByYW5nZShuKToKICAgIGEuYXBwZW5kKGxpc3QobWFwKGludCxpbnB1dCgpLnNwbGl0KCcgJykpKSkKYj1beCBmb3IgeCBpbiByYW5nZShuKV0KbG93PS0xCndoaWxlIGIhPS0xOgogICAgYW5zPTAKICAgIGM9MAogICAgZm9yIGkgaW4gcmFuZ2Uobi0xKToKICAgICAgICBpZiBhW2JbaV1dW2JbaSsxXV09PTA6CiAgICAgICAgICAgIGM9MQogICAgICAgICAgICBicmVhawogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGFucys9YVtiW2ldXVtiW2krMV1dCiAgICBpZiBjPT0wOgogICAgICAgIGlmIGFbYltuLTFdXVtiWzBdXSE9MDoKICAgICAgICAgICAgYW5zKz1hW2Jbbi0xXV1bYlswXV0KICAgICAgICAgICAgaWYgbG93PmFucyBvciBsb3c9PS0xOgogICAgICAgICAgICAgICAgbG93PWFucwogICAgYj1uZXh0KG4sYikKcHJpbnQobG93KQ==