#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=