#include <bits/stdc++.h>
using namespace std;
int n;
int a[20][20]={};
int fx[2]={1,0};
int fy[2]={0,1};
int qk[10][10][10][10]={};
int dfs(int x1,int y1,int x2,int y2){
int f1=0,f2=0;
if (x1==n&&y1==n){
f1++;
}
if (x2==n&&y2==n){
f2++;
}
int dx1=x1,dx2=x2,dy1=y1,dy2=y2;
for (int i=0;i<=1;i++){
for (int j=0;j<=1;j++){
dx1=x1,dx2=x2,dy1=y1,dy2=y2;
if ((x1+fx[i])>=1&&(x1+fx[i])<=n&&(y1+fy[i])>=1&&(y1+fy[i])<=n){
dx1+=fx[i];
dy1+=fy[i];
}else if(!f1){
continue;
}
if ((x2+fx[j])>=1&&(x2+fx[j])<=n&&(y2+fy[j])>=1&&(y2+fy[j])<=n){
dx2+=fx[j];
dy2+=fy[j];
}else if(!f2){
dx1-=fx[i];
dy1-=fy[i];
continue;
}
int yj=qk[x1][y1][x2][y2];
if (!f1){
yj+=a[dx1][dy1];
}
if (!f2){
yj+=a[dx2][dy2];
}
if (dx1==dx2&&dy1==dy2&&!f1&&!f2){
yj-=a[dx1][dy1];
}
if (yj>qk[dx1][dy1][dx2][dy2]){
qk[dx1][dy1][dx2][dy2]=yj;
}
if (dx1==n&&dy1==n&&dx2==n&&dy2==n){
return 0;
}
dfs(dx1,dy1,dx2,dy2);
}
}
return 0;
}
int main(){
cin>>n;
int d,b,c;
while(cin>>d>>b>>c){
if (d||b){
a[d][b]=c;
}else{
break;
}
}
dfs(1,1,1,1);
cout<<qk[n][n][n][n]+a[1][1];
return 0;
}