rt
#include<bits/stdc++.h>
using namespace std;
int n;
int a[10][10];
int dp[10][10][10];
int main() {
memset(dp,-1,sizeof(dp));
memset(a,0,sizeof(a));
cin >> n;
int x, y, z;
while (1) {
cin >> x >> y >> z;
if (x == 0 and y == 0 and z == 0) break;
a[x][y] = z;
}
dp[1][1][1] = a[1][1];
for (int k = 2; k <= 2 * n - 1; k++) {
for (int x1 = 1; x1 <= n; x1++) {
for (int x2 = 1; x2 <= n; x2++) {
int y1 = k - x1;
int y2 = k - x2;
int cur=dp[x1][y1][x2];
if (y1<1 or y1>n or y2<1 or y2>n) continue;
dp[x1][y1][x2] = -1;
if (x1 > 1 && x2 > 1)
cur = max(cur, dp[x1 - 1][y1][x2 - 1]);
if (x1 > 1 && y2 > 1)
cur = max(cur, dp[x1 - 1][y1][x2]);
if (y1 > 1 && x2 > 1)
cur = max(cur, dp[x1][y1 - 1][x2 - 1]);
if (y1 > 1 && y2 > 1)
cur = max(cur, dp[x1][y1 - 1][x2]);
if (x1 == x2 && y1 == y2)
cur += a[x1][y1];
else
cur += a[x1][y1] + a[x2][y2];
dp[x1][y1][x2]=cur;
}
}
}
cout << dp[n][n-1][n] << endl;
return 0;
}