#include <bits/stdc++.h>
using namespace std;
int n;
int a[107][107];
int dp[17][17][17][17];
int x,y,z;
int maxans;
void dfs(int ans,int x,int y,int x1,int y1){
if(ans<dp[x][y][x1][y1]){
return ;
}
if(x==n&&y==n&&x1==n&&y1==n){
maxans=max(ans+a[x][y],maxans);
return ;
}
if(x<=n&&y+1<=n&&x1<=n&&y1+1<=n){
if(x==x1&&y1+1==y+1){
dfs(ans+a[x][y+1],x,y+1,x1,y1+1);
}
dfs(ans+a[x][y+1]+a[x1][y1+1],x,y+1,x1,y1+1);
}
if(x<=n&&y+1<=n&&x1+1<=n&&y1<=n){
if(x==x1+1&&y1==y+1){
dfs(ans+a[x][y+1],x,y+1,x1+1,y1);
}
dfs(ans+a[x][y+1]+a[x1+1][y1],x,y+1,x1+1,y1);
}
if(x+1<=n&&y<=n&&x1+1<=n&&y1<=n){
if(x+1==x1+1&&y1==y){
dfs(ans+a[x+1][y],x+1,y,x1+1,y1);
}
dfs(ans+a[x+1][y]+a[x1+1][y1],x+1,y,x1+1,y1);
}
if(x+1<=n&&y<=n&&x1<=n&&y1+1<=n){
if(x+1==x1&&y1+1==y){
dfs(ans+a[x+1][y],x+1,y,x1,y1+1);
}
dfs(ans+a[x+1][y]+a[x1][y1+1],x+1,y,x1,y1+1);
}
dp[x][y][x1][y1]=ans;
}
int main(){
cin>>n;
do{
cin>>x>>y>>z;
a[x][y]=z;
}while(x!=0&&y!=0&&z!=0);
dfs(a[1][1],1,1,1,1);
cout<<maxans;
return 0;
}