#include <bits/stdc++.h>
using namespace std;
int a[200][200];
int bk[200][200];
int n,m;
int dfs(int x,int y){
if(x==n){
return bk[x][y]=a[x][y];
}
if(bk[x][y])
return bk[x][y];
return bk[x][y]=a[x][y]+max(dfs(x+1,y),dfs(x+1,y+1));
}
void bfs(int x,int y){
if(x>n)
return;
cout<<y<<" ";
if(bk[x+1][y]>bk[x+1][y+1])
bfs(x+1,y);
else
bfs(x+1,y+1);
return ;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
cin>>a[i][j];
cout<<"最大值:"<<endl;
cout<<dfs(1,1)<<endl;
cout<<"最大值路径:"<<bfs(1,1)<<endl;
return 0;
}