n, k = gets.split.map(&:to_i)
a = gets.split.map(&:to_i).sort!
f = gets.split.map(&:to_i).sort.reverse!
ans = []

n.times do |i|
  ans << a[i] * f[i]
end

k.times do
  index = ans.index(ans.max)
  a[index] = a[index] - 1
  ans[index] = a[index] * f[index]
end

p ans.max