import math
def ip():
return map(int,input().split())
# print(f(1))
# print(f(10))
# print(f(100))
# print(f(200))
# print(f(20))
# print(f(99))
# print(f(19))
T=int(input())
# T=1
for __ in range(T):
n=int(input())
lst=[]
for _ in range(n):
tmp=tuple(ip())
lst.append(tmp)
curr=-1
#l,r,c,i
one=[float('inf'),float('-inf'),float('inf'),-1]
#num,c,i
mx=[float('-inf'),float('inf'),-1]
mn=[float('inf'),float('inf'),-1]
res=[]
for i in range(n):
l,r,c=lst[i]
#updating mn and mx
if l<mn[0]:
mn=[l,c,i]
elif mn[0]==l and c<mn[1]:
mn=[l,c,i]
if r>mx[0]:
mx=[r,c,i]
elif mx[0]==r and c<mx[1]:
mx=[r,c,i]
if one[0]>mn[0] or one[1]<mx[0]:
one=[float('inf'),float('-inf'),float('inf'),-1]
if l==mn[0] and r==mx[0]:
if one[-1]==-1:
one=[l,r,c,i]
else:
one=[l,r,min(one[2],c),i]
a=float('inf')
a=min(a,one[2])
a=min(a,mx[1]+mn[1])
res.append(a)
# print("easdfsdfr")
for i in res:
print(i)
aW1wb3J0IG1hdGgKZGVmIGlwKCk6CiAgICByZXR1cm4gbWFwKGludCxpbnB1dCgpLnNwbGl0KCkpCgojIHByaW50KGYoMSkpCiMgcHJpbnQoZigxMCkpCiMgcHJpbnQoZigxMDApKQojIHByaW50KGYoMjAwKSkKIyBwcmludChmKDIwKSkKIyBwcmludChmKDk5KSkKIyBwcmludChmKDE5KSkKVD1pbnQoaW5wdXQoKSkKIyBUPTEKZm9yIF9fIGluIHJhbmdlKFQpOgogICAgbj1pbnQoaW5wdXQoKSkKICAgIGxzdD1bXQogICAgZm9yIF8gaW4gcmFuZ2Uobik6CiAgICAgICAgdG1wPXR1cGxlKGlwKCkpCiAgICAgICAgbHN0LmFwcGVuZCh0bXApCiAgICAKICAgIGN1cnI9LTEKCiAgICAjbCxyLGMsaQogICAgb25lPVtmbG9hdCgnaW5mJyksZmxvYXQoJy1pbmYnKSxmbG9hdCgnaW5mJyksLTFdCgogICAgI251bSxjLGkKICAgIG14PVtmbG9hdCgnLWluZicpLGZsb2F0KCdpbmYnKSwtMV0KICAgIG1uPVtmbG9hdCgnaW5mJyksZmxvYXQoJ2luZicpLC0xXQoKICAgIHJlcz1bXQogICAgZm9yIGkgaW4gcmFuZ2Uobik6CgogICAgICAgIGwscixjPWxzdFtpXQoKICAgICAgICAjdXBkYXRpbmcgbW4gYW5kIG14CgogICAgICAgIGlmIGw8bW5bMF06CiAgICAgICAgICAgIG1uPVtsLGMsaV0KICAgICAgICBlbGlmIG1uWzBdPT1sIGFuZCBjPG1uWzFdOgogICAgICAgICAgICBtbj1bbCxjLGldCiAgICAgICAgCgogICAgICAgIGlmIHI+bXhbMF06CiAgICAgICAgICAgIG14PVtyLGMsaV0KICAgICAgICBlbGlmIG14WzBdPT1yIGFuZCBjPG14WzFdOgogICAgICAgICAgICBteD1bcixjLGldCiAgICAgICAgCgogICAgICAgIGlmIG9uZVswXT5tblswXSBvciBvbmVbMV08bXhbMF06CiAgICAgICAgICAgIG9uZT1bZmxvYXQoJ2luZicpLGZsb2F0KCctaW5mJyksZmxvYXQoJ2luZicpLC0xXQoKICAgICAgICBpZiBsPT1tblswXSBhbmQgcj09bXhbMF06CiAgICAgICAgICAgIGlmIG9uZVstMV09PS0xOgogICAgICAgICAgICAgICAgb25lPVtsLHIsYyxpXQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgb25lPVtsLHIsbWluKG9uZVsyXSxjKSxpXQoKICAgICAgICBhPWZsb2F0KCdpbmYnKQogICAgICAgIGE9bWluKGEsb25lWzJdKQoKICAgICAgICBhPW1pbihhLG14WzFdK21uWzFdKQogICAgICAgCgogICAgICAgIHJlcy5hcHBlbmQoYSkKCiAgICAgICAgCiAgICAjIHByaW50KCJlYXNkZnNkZnIiKQogICAgZm9yIGkgaW4gcmVzOgogICAgICAgIHByaW50KGkpCiAgICAgICAgCgoKICAgICAgICAgICAgCgo=