n,k=gets.split.map(&:to_i)
a=gets.split.map(&:to_i).sort
f=gets.split.map(&:to_i).sort.reverse
l=[]
n.times do |i|
  l << [a[i]*f[i], f[i]]
end
l.sort!
k.times do
  b=l.pop
  if b[0]==0
    puts 0
    exit
  end
  b[0]-=b[1]
  s=l.bsearch_index {|l0, l1| l0>=b[0]}
  if s==nil
    l << b
  else
    l.insert(s,b)
  end
end
puts l[-1][0]