

n = int(input())
nums = list(map(int, input().split()))
tools = list(map(int, input().split()))
all_tool = []
for i in range(4):
for count in range(tools[i]):
all_tool.append(i)
# + - x //
# 0 1 2 3
# 순열 구하기
def permutation(arr):
result = []
def dfs(path, used):
if len(path) == len(arr):
result.append(tuple(path)) # 이후에 set으로 변환해서 중복 제거해야 하므로 tuple로 저장해야 함!(hashable)
return
for i in range(len(arr)):
if i not in used:
dfs(path + [arr[i]], used.union({i}))
dfs([], set())
return result
# 중복 요소가 있으므로 중복 경우의 수 제거
cases = set(permutation(all_tool))
min_val = float('inf') # 무한대로 초기 설정
max_val = float('-inf')
for case in cases:
res = nums[0]
for i in range(1, n):
if case[i - 1] == 0: # +
res += nums[i]
elif case[i - 1] == 1: # -
res -= nums[i]
elif case[i - 1] == 2: # *
res *= nums[i]
else: # //
if res < 0: # 예외상황 처리
res = -(-res // nums[i])
else:
res = res // nums[i]
# 값 갱신
max_val = max(max_val, res)
min_val = min(min_val, res)
print(max_val)
print(min_val)