def solve(a,i): if len(a) == 1: return 0 b0 = [] b1 = [] for ai in a: if ai>>i&1: b1.append(ai) else: b0.append(ai) if not b0: return solve(b1,i-1) elif not b1: return solve(b0,i-1) else: return min(solve(b0,i-1),solve(b1,i-1)) + (1<