import sys from itertools import permutations, combinations def main(): input = sys.stdin.read().split() n = int(input[0]) cards = input[1:n+1] digits = [] ops = [] for c in cards: if c in '+-': ops.append(c) else: digits.append(c) O = len(ops) D = len(digits) if O == 0: print(0, 0) return # Generate unique permutations for digits and ops unique_digit_perms = set(permutations(digits)) digit_perms = [tuple(p) for p in unique_digit_perms] unique_op_perms = set(permutations(ops)) op_perms = [tuple(p) for p in unique_op_perms] max_val = -float('inf') min_val = float('inf') # Precompute all possible insert positions insert_positions = list(combinations(range(D-1), O)) for d_perm in digit_perms: for inserts in insert_positions: sorted_inserts = sorted(inserts) groups = [] current = [] pos = 0 for i in range(len(d_perm)): current.append(d_perm[i]) if pos < len(sorted_inserts) and i == sorted_inserts[pos]: groups.append(''.join(current)) current = [] pos += 1 groups.append(''.join(current)) try: nums = [int(g) for g in groups] except: continue # invalid if group is empty (unlikely) if len(nums) != O + 1: continue for op_perm in op_perms: current_val = nums[0] for i in range(O): if op_perm[i] == '+': current_val += nums[i+1] else: current_val -= nums[i+1] if current_val > max_val: max_val = current_val if current_val < min_val: min_val = current_val print(max_val, min_val) if __name__ == '__main__': main()