c2n = {chr(ord('0') + i): i for i in range(10)} c2n.update({chr(ord('A') + i): i + 10 for i in range(26)}) def read_data(): N = int(input()) Vs = [input() for _ in range(N)] return Vs def solve(Vs): min_n = float('inf') for v in Vs: n = convert(v) if n < min_n: min_n = n return min_n def convert(v): v = v.lstrip('0') if len(v) == 0: return 0 nums = [c2n[c] for c in v] base = max(nums) + 1 n = 0 for num in nums: n *= base n += num return n Vs = read_data() print(solve(Vs))