- #include<bits/stdc++.h> 
- #define ll long long 
- #define endl "\n" 
- #define F first 
- #define S second 
- #define loop(a,n) for(int i=a; i<=n ; i++) 
- #define TIME (1.0 * clock() / CLOCKS_PER_SEC) 
- #define NAME "DUONGDI" 
- using namespace std; 
-   
- int a[105][105];  
- int dp[105]; 
- int trace[105]; 
- string c; 
- int n; 
- void nhap(){ 
-     cin >> n; 
-     for(int i = 1; i <= n-1; i++){ 
-         for(int j = 2; j <= n; j++) { 
-             cin >> c; 
-             if(c[0] == '-') a[i][j] = 1e9; 
-             else a[i][j] = stoi(c); 
-         }         
-     } 
- } 
- void solve(){ 
-     for(int i = 1; i <= n; i++) dp[i] = 1e9; 
-         dp[1] = 0; 
-   
-         for(int j = 2; j <= n; j++) { 
-             for(int i = 1; i < j; i++) { 
-                 if(a[i][j] < 1e9 && dp[j] > dp[i] + a[i][j]) { 
-                     dp[j] = dp[i] + a[i][j]; 
-                     trace[j] = i; 
-                 } 
-             } 
-         } 
-     cout << dp[n] << endl; 
- } 
- void truyvet(){    
-     int path[105], k = 0, u = n; 
-     while(u != 0) { 
-         path[k++] = u; 
-         u = trace[u]; 
-     } 
-     for(int i = k - 1; i >= 0; i--) { 
-         cout << path[i] << " "; 
-     } 
- } 
- int main(){ 
-     ios_base::sync_with_stdio(0); 
-     cin.tie(0); cout.tie(0); 
-     freopen(NAME".INP","r",stdin); 
-     freopen(NAME".OUT","w",stdout); 
-     nhap(); 
-     solve(); 
-     truyvet(); 
-     return 0; 
- } 
-   
				I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBlbmRsICJcbiIKI2RlZmluZSBGIGZpcnN0CiNkZWZpbmUgUyBzZWNvbmQKI2RlZmluZSBsb29wKGEsbikgZm9yKGludCBpPWE7IGk8PW4gOyBpKyspCiNkZWZpbmUgVElNRSAoMS4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDKQojZGVmaW5lIE5BTUUgIkRVT05HREkiCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgYVsxMDVdWzEwNV07IAppbnQgZHBbMTA1XTsKaW50IHRyYWNlWzEwNV07CnN0cmluZyBjOwppbnQgbjsKdm9pZCBuaGFwKCl7CiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbi0xOyBpKyspewogICAgICAgIGZvcihpbnQgaiA9IDI7IGogPD0gbjsgaisrKSB7CiAgICAgICAgICAgIGNpbiA+PiBjOwogICAgICAgICAgICBpZihjWzBdID09ICctJykgYVtpXVtqXSA9IDFlOTsKICAgICAgICAgICAgZWxzZSBhW2ldW2pdID0gc3RvaShjKTsKICAgICAgICB9ICAgICAgICAKICAgIH0KfQp2b2lkIHNvbHZlKCl7CiAgICBmb3IoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgZHBbaV0gPSAxZTk7CiAgICAgICAgZHBbMV0gPSAwOwoKICAgICAgICBmb3IoaW50IGogPSAyOyBqIDw9IG47IGorKykgewogICAgICAgICAgICBmb3IoaW50IGkgPSAxOyBpIDwgajsgaSsrKSB7CiAgICAgICAgICAgICAgICBpZihhW2ldW2pdIDwgMWU5ICYmIGRwW2pdID4gZHBbaV0gKyBhW2ldW2pdKSB7CiAgICAgICAgICAgICAgICAgICAgZHBbal0gPSBkcFtpXSArIGFbaV1bal07CiAgICAgICAgICAgICAgICAgICAgdHJhY2Vbal0gPSBpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgY291dCA8PCBkcFtuXSA8PCBlbmRsOwp9CnZvaWQgdHJ1eXZldCgpeyAgIAogICAgaW50IHBhdGhbMTA1XSwgayA9IDAsIHUgPSBuOwogICAgd2hpbGUodSAhPSAwKSB7CiAgICAgICAgcGF0aFtrKytdID0gdTsKICAgICAgICB1ID0gdHJhY2VbdV07CiAgICB9CiAgICBmb3IoaW50IGkgPSBrIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgICAgICBjb3V0IDw8IHBhdGhbaV0gPDwgIiAiOwogICAgfQp9CmludCBtYWluKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBmcmVvcGVuKE5BTUUiLklOUCIsInIiLHN0ZGluKTsKICAgIGZyZW9wZW4oTkFNRSIuT1VUIiwidyIsc3Rkb3V0KTsKICAgIG5oYXAoKTsKICAgIHNvbHZlKCk7CiAgICB0cnV5dmV0KCk7CiAgICByZXR1cm4gMDsKfQo=