#include<iostream>
#include<cstring>
using namespace std;
int fz[16][16],M,dp[32][16][16];
int main()
{
cin>>M;
int x,y,ff;
while(1){
cin>>x>>y>>ff;
if(!x) break;
else{
fz[x][y]=ff;
}
}
memset(dp,-1,sizeof(dp));
dp[2][1][1]=fz[1][1];
for(int s=3;s<M+M;s++){
for(int i=1;i<M;i++){
for(int j=i+1;j<=M;j++){ dp[s][i][j]=max(max(dp[s-1][i][j],dp[s-1][i-1][j]),max(dp[s-1][i][j-1],dp[s-1][i-1][j-1]));
if(dp[s][i][j]==-1) continue;
dp[s][i][j]+=(fz[s-i][i]+fz[s-j][j]);
}
}
}
cout<<dp[M+M-1][M-1][M];
return 0;
}
思路来自之前做的传纸条,求教!