#include <iostream>
#include <cmath>

using namespace std;

int n, id, elementy;
int tab[200];

int c[200][3];


bool spr[2005];
long long min_zaplata = 1000000000000000;
long long z;

void dec_to_bin(int liczba)
{
  int i=0;

  while(liczba) //dopóki liczba będzie różna od zera
  {
    tab[i++]=liczba%2;
    liczba/=2;
  }

  /*for(int j=elementy-1;j>=0;j--)
    cout<<tab[j];*/
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin >> n;
    id = 0;
    for(int i = 1; i <= n; i++)
    {
        for(int j = i; j <= n; j++)
        {
            cin >> c[id][0];
            c[id][1] = i;
            c[id][2] = j;
            id++;
        }
    }
    /*id = 0;
    for(int i = 1; i <= n; i++)
    {
        for(int j = i; j <= n; j++)
        {
            cout <<c[id][0]<<" "<<c[id][1]<<" "<<c[id][2]<<"\n";
            id++;
        }
    }*/
    elementy = n*(n-1)/2;
    for(int i = 0; i <= pow(2,elementy); i++)
    {
        int a = i;
        int b = i >> 1;
        int d = a^b;
        //cout << a<<" ";
        dec_to_bin(d);
        //cout <<"\n";
        z = 0;
        for(int j = 0; j <= n; j++)
        {
            spr[j] = 0;
        }
        for(int j = 0; j < elementy; j++)
        {
            if(tab[j] == 1)
            {
                z += c[j][0];
                spr[c[j][1]-1] = 1;
                spr[c[j][2]] = 1;
            }
        }
        bool straznik = true;
        for(int j = 0; j <= n; j++)
        {
            if(spr[j] == 0)
            {
                straznik = false;
                break;
            }
        }
        if(straznik == true)
        {
            if(min_zaplata > z)
            {
                min_zaplata = z;
                /*cout <<min_zaplata<<" ";
                for(int j=elementy-1;j>=0;j--)
                    cout<<tab[j];
                cout <<"\n";*/
            }
        }
    }
    cout << min_zaplata;
    return 0;
}
