class uf:
    def __init__(self):
        self.parent = None
        self.rank = 0
    def union(self, other):
        top, otop = self.find(), other.find()
        if top != otop:
            if top.rank < otop.rank:
                top.parent = otop
            elif top.rank > otop.rank:
                otop.parent = top
            else:
                top.rank = top.rank + 1
                otop.parent = top
    def find(self):
        if self.parent == None:
            return self
        else:
            self.parent = self.parent.find()
            return self.parent

class distance:
    def __init__(self, A, B, dist):
        self.a = A
        self.b = B
        self.d = dist
        
for _ in range(int(input())):
    result = 0
    vertex_count = int(input())
    vertex_list = [uf()]
    distance_list = []
    for i in range(vertex_count - 1):
        vertex = uf()
        distances = [int(x) for x in input().split()]
        for v in vertex_list:
            distance_list.append(distance(vertex, v, distances.pop(0)))
        vertex_list.append(vertex)    
        distance_list.sort(key=lambda d: d.d)
    for d in distance_list:
        if d.a.find() != d.b.find():
            d.a.union(d.b)
            result = result + d.d
    print(result)


            
