# 第一题 33% ,取每次钱最多的方式没想对,有问题
def find_max(n, p):
# l, r = 0, int(1e7)
# while l < r:
# mid = (l + r) >> 1
# if (1 - p) * (n + mid) - n < 0:
# l = mid + 1
# else:
# r = mid - 1
# return r
tmp = n / (1 - p) - n
return tmp - 1
n, m = list(map(int, input().split()))
benjin = n
nums = list(map(float, input().split()))
money = 0
for p in nums:
cur = find_max(benjin, p)
money += cur
benjin += cur
print(int(money + n))
# 第二题 40% 我算的方式错了吗?
c = int(input())
nums = list(map(float, input().split()))
matrix = []
result = [0] * c
for _ in range(c):
row = list(map(float, input().split()))
matrix.append(row)
for col in range(c):
sum_ = 0
for i in range(c):
sum_ += nums[i] * matrix[i][col]
result[col] = sum_
max_index = -1
max_value = float('-inf')
for i, num in enumerate(result):
if num > max_value:
max_value = num
max_index = i
print(max_index)
# 第三题 AC
q = int(input())
Max = 1000
for _ in range(q):
nums = list(map(int, input().split()))
a, b, c = nums
l, r = 0, Max
while l <= r:
mid = (l + r) / 2
result = pow(mid, 3) + a * mid * mid + b * mid - c
if abs(result) <= 1e-7:
print(mid)
break
elif result > 0:
r = mid - 0.00000001
else:
l = mid + 0.00000001
if l > r:
print(mid)
# 第四题 AC
def belong(l, r):
result = 0
for num in nums_red:
if num > r: break
if l <= num <= r:
result += 1
for num in nums_blue:
if num > r: break
if l <= num <= r:
result -= 1
return result
n, m = list(map(int, input().split()))
nums_red = list(map(int, input().split()))
nums_red.sort()
nums_blue = list(map(int, input().split()))
nums_blue.sort()
first, second, third = 0, 0, 0
q = int(input())
for _ in range(q):
l, r = list(map(int, input().split()))
tmp = belong(l, r)
if tmp == 0:
second += 1
elif tmp > 0:
first += 1
else:
third += 1
print(first, second, third)
#笔试题目##笔试时间#