import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
int[][] arr = new int[n + 1][n + 1];
while (true) {
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
int s = Integer.parseInt(st.nextToken());
if (x == 0 && y == 0 && s == 0) break;
arr[x][y] = s;
}
// 以上为输入
int[][][][] dp = new int[n + 1][n + 1][n + 1][n + 1];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
for (int k = 1; k <= n; k++) {
for (int l = 1; l <= n; l++) {
int max1 = Math.max(dp[i - 1][j][k - 1][l], dp[i - 1][j][k][l - 1]);
int max2 = Math.max(dp[i][j - 1][k - 1][l], dp[i][j - 1][k][l - 1]);
dp[i][j][k][l] = Math.max(max1, max2) + arr[i][j] + ((i == k && j == l) ? 0 : arr[k][l]);
// 第二次若与第一次同起点同落脚点,
// 则不加arr[k][l],
// 因为第一次已经把arr[k][l]拿走变成0了
}
}
}
}
bw.write(dp[n][n][n][n] + "");
bw.flush();
}
}
每日一水~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~