```cpp
#include <algorithm>
#include <array>
#include <iostream>
const int maxn = 2e2 + 7;
int n;
std::array<std::array<int, maxn>, maxn> a;
std::array<std::array<std::array<int, maxn>, maxn>, maxn> dp;
auto gdp(int i, int j, int k) -> int & { return dp.at(i).at(j).at(k); }
auto main() -> int {
std::cin >> n;
int x, y, s;
while (std::cin >> x >> y >> s && x && y && s) {
a.at(x).at(y) = s;
}
for (int step = 2; step <= n * 2; ++step) {
for (int i = 1; i <= n; ++i) {
for (int p = 1; p <= n; ++p) {
int j = step - i;
int q = step - p;
if (j > n || q > n || j < 1 || q < 1) {
continue;
}
int f1 = gdp(step - 1, i - 1, p);
int f2 = gdp(step - 1, i, p - 1);
gdp(step, i, p) = std::max(f1, f2) + +a.at(p).at(q);
}
}
}
std::cout << gdp(n * 2, n, n) << std::endl;
}