MSNG Python Solution

power = 10**12
def Solution(inp):
    possiblevalues = [set() for i in inp ]
    ind = 0
    for i in inp : 
        base , value = i[0] , str(i[1]) 
        if base  > -1:
            possiblevalues[ind].add(int(value , base))
            ind+=1 
            continue 
        
        for b in range(2 , 37):
            try:
                newvalue = int(value , b) 
                possiblevalues[ind].add(newvalue)
            
            except:
                pass 
        ind+=1
    

    
    
    base10 = [set() for i in inp]
    ind = 0
    for lis in possiblevalues:
        for value in lis:
            try:
                v = int(str(value) , 10)
                if v <=10**12 :
                      base10[ind].add(v)
                
            except:
                pass  
        ind+=1 
    
    result = set()
    if len(inp) ==1 : 
        return min(list(base10[0]))
    
    result = base10[0].intersection(base10[1])
    for i in range(2 , len(inp)):
        result = result.intersection(base10[i]) 
    
    if len(result)==0:
        return -1 
    
    
    return min(list(result))




if __name__=="__main__":
    for _ in range(int(input())):
        inp = []
        for i in range(int(input())):
            base  , value = map(str  , input().split())
            inp.append((int(base) , value))
    
        print(Solution(inp))