#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
****************************************************************/