#!/usr/bin/env python3

# université pierre et marie curie - c. dürr - 2017
# http://www-desir.lip6.fr/~durrc/Iut/cpa/2017/tme5-progdyn/

# Empilement de boîtes
# algorithme: prod-dyn sur la ligne
# complexité: O(n^2)

from sys import stdin
from itertools import permutations

def readint():
    return int(stdin.readline())

def readints():
    return map(int, stdin.readline().split())

def stackingboxes(B):
    """
    problème:
        B = toutes les rotations des boîtes
        pour B de la plus grande à la plus petite boîte
        s[j] = empilement maximal des boites B[0] à B[j]
        solution = max s[j]
    récursion:
        s[j] = hauteur boîte j + max s[i]
        où la maximisation est prise sur les boîtes i < j,
        tel qu'on peut poser la boîte j sur la boîte i
    complexité:
        O(n) variable, récursion sur O(n) expressions
        total = O(n^2)
    """
    B = list(reversed(sorted(B)))   # trier en ordre décroissant
    n = len(B)
    s = [0] * n
    for j in range(n):
        best = 0
        for i in range(j):
            if B[i][0] > B[j][0] and B[i][1] > B[j][1] and s[i] > best:
                best = s[i]
        s[j] = best + B[j][2]
    return max(s)

n = readint()
B = []
for _ in range(n):
    box = tuple(readints())
    B += list(permutations(box))

print(stackingboxes(B))
