# Kこの街について，それぞれ横に串刺しにするか縦に串刺しにするかを選んでDFS
N = int(input())

L = [0] * N
for i in range(N):
    X,Y,P = map(int,input().split())
    L[i] = [X,Y,P]

def dfs(XL,YL,PL,K):
    # もう残りのやつがなかったら，０になる
    if not PL:
        return 0
    # 残りがあるけど，全部線を引き終えたら，残りのポイントたちについて距離を計算
    if len(XL)+len(YL)==K+2:
        score = 0
        for x,y,p in PL:
            x_dis = min([abs(x-xl) for xl in XL])
            y_dis = min([abs(y-yl) for yl in YL])
            min_dis = min(x_dis,y_dis)
            score += min_dis*p

        return score
    # それ以外のときは線を引いていく
    score = []
    for i, pl in enumerate(PL):
        x,y,_ = pl
        x = [x]
        y = [y]
        score.append(min(dfs(XL+x,YL,PL[:i]+PL[i+1:],K),dfs(XL,YL+y,PL[:i]+PL[i+1:],K)))
    return min(score)


for i in range(N+1):
    print((dfs([0],[0],L,i)))






