#include<bits/stdc++.h>
using namespace std;
const int N=10;
int a[N][N],b[N][N],x,y,z,n;
void find(int x1,int y1){
if(x1==0&&y1==0)
{
return;
}
else {
if(a[x1][y1]-b[x1][y1]==a[x1-1][y1])
{
b[x1][y1]=0;
find(x1-1,y1);
}
else if(a[x1][y1]-b[x1][y1]==a[x1][y1-1])
{
b[x1][y1]=0;
find(x1,y1-1);
}
}
}
void solve1(){
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
a[i][j]+=max(a[i-1][j],a[i][j-1]);
}
}
}
void solve2(){
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
b[i][j]+=max(b[i-1][j],b[i][j-1]);
}
}
}
signed main(){
cin>>n;
for(int i=1;i<=n+1;i++)
{
cin>>x>>y>>z;
if(x==0&&y==0&&z==0)
break;
else a[x][y]=z,b[x][y]=z;
}
solve1();
find(n,n);
solve2();
cout<<a[n][n]+b[n][n];
return 0;
}