f = open("имя файла") #открываю файл с тройками
n = sum(1 for x in open('имя файла')) #смотрю количество строк в файле. строки файла - количество наших троек

def comb():  #функция, которая на выводе дает всевозможные комбинации троек
    a = list(map(int,f.readline().split())) #читаем строку, создаем из этого список целых чисел (наши числа в тройке)
    return (a[0]+a[1], a[1]+a[2],a[0]+a[2]) #мы возвращаем всевозможные комбинации цифр из наших троек

s = comb() #получаем одну такую комбинацию сумм для начала
for _ in range(n-1):
    tr = comb() # получаем еще одну комбинацию сумм
    combinacii = [a+b for a in tr for b in s] #перебираем суммы двух комбинаций, в итоге тут выходит 9 чисел.
    s1 = [0]*7 #мы будем сортировать полученные суммы комбинаций по остаткам от деления на 7. индекс = остаток от деления
    for x in combinacii: #перебираем числа из combinaci'й.
        if x > s1[x%7]: #сортируем числа из cmb по остаткам при делении на 7, запихиваем в s1 самое большое число, подходящее по остатку
            s1[x%7] = x
    s = [x for x in s1] #преобразуем s в список
print(s[0]) #в конце мы выводим нужное число с нужным остатком. число кратно 7 - остаток 0, значит мы выводим нулевой элемент
#0 выведится в случае, если такой суммы нет.