#include <bits/stdc++.h>
using namespace std;
const int MAX = 310;
const int inf = 1e6;
int mod = 1e9 + 7, a[MAX][MAX];
int dp[MAX][MAX][2 * MAX];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n;
  cin >> n;
  for (int i = 0; i < n + 2; i++)
    for (int j = 0; j < n + 2; j++) a[i][j] = -inf;
  for (int i = 1; i < n + 1; i++)
    for (int j = 1; j < n + 1; j++) cin >> a[i][j];
  for (int i = 0; i < n + 1; i++)
    for (int j = 0; j < n + 1; j++)
      for (int k = 0; k < 2 * n + 1; k++) dp[i][j][k] = -inf;
  dp[1][1][1] = a[1][1];
  for (int d = 2; d < 2 * n; d++) {
    int ini = 1, fin = n;
    if (d <= n)
      fin = d;
    else
      ini = d - n + 1;
    for (int i = ini; i < fin + 1; i++) {
      for (int j = ini; j < fin + 1; j++) {
        if (i > n || j > n || d + 1 - i > n || d + 1 - j > n) continue;
        dp[i][j][d] = max(dp[i][j][d], dp[i - 1][j][d - 1]);
        dp[i][j][d] = max(dp[i][j][d], dp[i][j - 1][d - 1]);
        dp[i][j][d] = max(dp[i][j][d], dp[i][j][d - 1]);
        dp[i][j][d] = max(dp[i][j][d], dp[i - 1][j - 1][d - 1]);
        if (i == j)
          dp[i][j][d] += a[i][d + 1 - i];
        else
          dp[i][j][d] += a[i][d + 1 - i] + a[j][d + 1 - j];
      }
    }
  }
  cout << dp[n][n][2 * n - 1];
}
