#include <bits/stdc++.h>
using namespace std;
//记录数塔及数塔的计算结果
int a[110][110];
int r[10000][2];//记录路径
int main(){
int i,j,k,n;
cin>>n;
//读入数塔
for(i = 1;i <= n;i++){
for(j = 1;j <= i;j++){
cin>>a[i][j];
}
}
//从倒数第二层开始计算
for(i = n - 1;i >= 1;i--){
for(j = 1;j <= i;j++){
//下方和右侧看哪个数更大
a[i][j] += max(a[i+1][j],a[i+1][j+1]);
}
}
//根据计算结果存路线
r[1][1] = 1;
r[1][2] = 1;
k = 2;
int x = 1,y = 1;//记录路径
//一直算到第n行
while(x != n){
if(a[x+1][y] > a[x+1][y+1]){
r[k][1] = x + 1;
r[k][2] = y;
x++;
}else{
r[k][1] = x + 1;
r[k][2] = y + 1;
x++;y++;
}
k++;//下标自增
}
//输出结果
for(i = k-1;i >= 1;i--){
if(i != 1){
cout<<r[i][1]<<","<<r[i][2]<<"->";
}else{
cout<<r[i][1]<<","<<r[i][2]<<endl;
}
}
cout<<a[1][1]<<endl;
return 0;
}
/**************************************************************
Problem: 1410
User: admin
Language: C++
Result: Accepted
Time:16 ms
Memory:2200 kb
****************************************************************/