#include <iostream>
using namespace std;
int****h, **p;
void val(int x1,int y1,int x2,int y2,int v,int n)
{
if(x1==n||x2==n||y1==n||y2==n)
return ;
if(x1==x2&&y1==y2)
h[x1][y1][x2][y2]=max(h[x1][y1][x2][y2],p[x1][y1]+v);
else
h[x1][y1][x2][y2]=max(h[x1][y1][x2][y2],p[x1][y1]+p[x2][y2]+v);
}
int sampleSelect(int n)
{
int x1,y1,x2,y2,v;
h=new int***[n];
for(int i=0;i<n;i++)
{
h[i]=new int**[n];
for(int j=0;j<n;j++)
{
h[i][j]=new int*[n];
for(int x=0;x<n;x++)
{
h[i][j][x]=new int[n];
for(int y=0;y<n;y++)
h[i][j][x][y]=0;
}
}
}
for(int s=1;s<2*n-1;s++)
for(x1=0;x1<s-1;x1++)
for(x2=0;x2<s-1;x2++)
{
y1=s-1-x1;y2=s-1-x2;
if(x1<n&&x2<n&&y1<n&&y2<n)
{
v=h[x1][y1][x2][y2];
val(x1+1,y1,x2+1,y2,v,n);
val(x1+1,y1,x2,y2+1,v,n);
val(x1,y1+1,x2+1,y2,v,n);
val(x1,y1+1,x2,y2+1,v,n);
}
}
return v;
}
int main()
{
int n,a,b,c;
cin>>n;
p=new int* [n];
for(int i=0;i<n;i++)
{
p[i]=new int[n];
for(int j=0;j<n;j++)
p[i][j]=0;
}
while(true)
{
cin>>a>>b>>c;
if(!a&&!b&&!c)
break;
p[a][b]=c;
}
cout << sampleSelect(n)<< endl;
return 0;
}