import java.io.*;
public class 数字三角形 {
static final int MAX = 200;
static int [][] dp = new int[MAX][MAX];
static int [][] a = new int[MAX][MAX];
public static void main(String[] args) throws IOException {
BufferedReader cin = new BufferedReader(new FileReader("input1.txt"));
BufferedWriter out = new BufferedWriter(new FileWriter("output1.txt"));
int n;
n=Integer.valueOf(cin.readLine());
for (int i = 1; i <= n;i++) {
String s=cin.readLine();
String[] ss=s.split(" ");
for (int j = 1; j <= i;j++) {
a[i][j]=Integer.valueOf(ss[j-1]);
}
}
cin.close();
int maxx=-1;
for (int i = 1; i <= n;i++) {
for (int j = 1; j <= i;j++) {
dp[i][j]=Math.max(dp[i-1][j]+a[i][j], dp[i-1][j-1]+a[i][j]);
maxx=Math.max(maxx, dp[i][j]);
}
}
out.write(String.valueOf(maxx));
out.close();
}
}
input1.txt
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
output1.txt
30