output_description: Print the minimum possible score of the team.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N K
      A_1 A_2 ... A_N
      F_1 F_2 ... F_N
attempt: n, k = map(int, input().split())
  a = list(map(int, input().split()))
  f = list(map(int, input().split()))
  
  # a.sort(reverse=True)
  # f.sort(reverse=True)
  # print(a)
  # print(f)
  
  a1 = sorted(a, reverse=True)
  a2 = sorted(a)
  
  f1 = sorted(f, reverse=True)
  f2 = sorted(f)
  
  for i in range(n):
      if k >= a1[i]:
          k -= a1[i]
          a1[i] = 0
      else:
          a1[i] -= k
          k = 0
          break
  
  for i in range(n):
      if k >= a2[i]:
          k -= a2[i]
          a2[i] = 0
      else:
          a2[i] -= k
          k = 0
          break
  
  a1 = sorted(a1)
  a3 = sorted(a1, reverse=True)
  a2 = sorted(a2)
  a4 = sorted(a2, reverse=True)
  
  
  c1 = [0] * n
  c2 = [0] * n
  c3 = [0] * n
  c4 = [0] * n
  c5 = [0] * n
  c6 = [0] * n
  c7 = [0] * n
  c8 = [0] * n
  
  for j in range(n):
      c1[j] = a1[j] * f1[j]
      c2[j] = a1[j] * f2[j]
      c3[j] = a2[j] * f1[j]
      c4[j] = a2[j] * f2[j]
  
      c5[j] = a3[j] * f1[j]
      c6[j] = a3[j] * f2[j]
      c7[j] = a4[j] * f1[j]
      c8[j] = a4[j] * f2[j]
  
  
  # print(max(c1), max(c2), max(c3), max(c4))
  print(min(max(c1), max(c2), max(c3), max(c4), max(c5), max(c6), max(c7), max(c8)))
  
problem_description: Statement
  
  Takahashi will take part in an eating contest. Teams of N members will compete
  in this contest, and Takahashi's team consists of N players numbered 1 through
  N from youngest to oldest. The _consumption coefficient_ of Member i is A_i.
  
  In the contest, N foods numbered 1 through N will be presented, and the
  _difficulty_ of Food i is F_i. The details of the contest are as follows:
  
    * A team should assign one member to each food, and should not assign the same member to multiple foods.
    * It will take x \times y seconds for a member to finish the food, where x is the consumption coefficient of the member and y is the difficulty of the dish.
    * The score of a team is the longest time it takes for an individual member to finish the food.
  
  Before the contest, Takahashi's team decided to do some training. In one set
  of training, a member can reduce his/her consumption coefficient by 1, as long
  as it does not go below 0. However, for financial reasons, the N members can
  do at most K sets of training in total.
  
  What is the minimum possible score of the team, achieved by choosing the
  amounts of members' training and allocating the dishes optimally?
samples: [{"input": "3 5\n    4 2 1\n    2 3 1", "output": "2\n    \n\nThey can achieve the score of 2, as follows:\n\n  * Member 1 does 4 sets of training and eats Food 2 in (4-4) \\times 3 = 0 seconds.\n  * Member 2 does 1 set of training and eats Food 3 in (2-1) \\times 1 = 1 second.\n  * Member 3 does 0 sets of training and eats Food 1 in (1-0) \\times 2 = 2 seconds.\n\nThey cannot achieve a score of less than 2, so the answer is 2.\n\n* * *"}, {"input": "3 8\n    4 2 1\n    2 3 1", "output": "0\n    \n\nThey can choose not to do exactly K sets of training.\n\n* * *"}, {"input": "11 14\n    3 1 4 1 5 9 2 6 5 3 5\n    8 9 7 9 3 2 3 8 4 6 2", "output": "12"}]