n, k = gets.chomp.split.map(&:to_i)
a = gets.chomp.split.map(&:to_i)
f = gets.chomp.split.map(&:to_i)

a.sort!
f.sort!.reverse!

def s(p, a, f, n, k)
  sum = 0
  n.times do |i|
    u = (a[i] - (p.to_f/f[i])).ceil
    sum += u if u > 0
  end
  return false if sum > k
  true
end

p (-1..10*12).bsearch {|p| s(p, a, f, n, k) }
