import java.util.Scanner;
public class ALGO1006 {
/*本题目的主要思想是把设置二维数组 将数据填入数组
*从题目中可知当走到最后右下角时 金币最多 即arr[n-1][n-1]是我们要求的答案--金币最大数
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int arr[][] = new int[n][n];
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
arr[i][j]=scanner.nextInt();
}
}
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
//如果走上边界 他的金币数
if(i==0&&j>0) {
arr[i][j]=arr[i][j-1]+arr[i][j];
}
//如果走左边界 他的金币数
else if(j==0&&i>0) {
arr[i][j]=arr[i-1][j]+arr[i][j];
}else if(i>0){//如果走中间 他的金币个数为arr[i][j]的金币个数加左方格/上方格 金币数
arr[i][j]=arr[i][j]+Math.max(arr[i][j-1],
arr[i-1][j]);
}
}
}
System.out.println(arr[n-1][n-1]);
}
}