#include <iostream>
#include <algorithm>
using namespace std;
void wypisz(int **A, int n){
for(int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
cout << A[i][j] << " ";
}
cout << "\n";
}
}
int max_suma(int **A, int n){
int **dp = new int *[n + 1];
for(int i = 0; i <= n; i++){
dp[i] = new int[n + 1]();
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
if(i == 1 && j == 1){
dp[i][j] = A[i][j];
} else {
int z_gory = (i > 1) ? dp[i - 1][j] : 0;
int z_lewej = (j > 1) ? dp[i][j - 1] : 0;
dp[i][j] = A[i][j] + max(z_gory, z_lewej);
}
}
}
int wynik = dp[n][n];
for(int i = 0; i <= n; i++){
delete[] dp[i];
}
delete[] dp;
return wynik;
}
void wczytajLepsze(int **A, int n){
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
cin >> A[i][j];
}
}
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int n;
if (!(cin >> n)) return 0;
int **A = new int *[n + 1];
for(int i = 0; i <= n; i++){
A[i] = new int[n + 1]();
}
wczytajLepsze(A, n);
cout << max_suma(A, n) << "\n";
for(int i = 0; i <= n; i++){
delete[] A[i];
}
delete[] A;
return 0;
}