#堀江伸一 会津大学オンラインジャッジ問3554 Combination 合格
def f()
return gets.split(" ").map{|e| e.to_i}
end
n,m=f()
xs=f()
ys=f()
s1=n-m
dp=[]
(s1+1).times{|i|
dp<<xs[i]*ys[0]
}
if m==1 then
puts dp.max
else
1.upto(m-1){|p1|
t=dp[0]
dp.map!{|t2|
if t<t2 then
t=t2
end
t
}
dp2=[0]*(s1+1)
t=0
(s1+1).times{|p2|
p3=p1+p2
#p [p1,p2,p3]
if p2==0 then
dp2[0]=dp[0]+xs[p3]*ys[p1]
t=dp2[0]
else
dp2[p2]=[t,dp[p2]+xs[p3]*ys[p1]].max
t=[t,dp2[p2]].max
end
}
#p dp
dp=dp2
}
puts dp.max
end
I+WggOaxn+S8uOS4gCDkvJrmtKXlpKflrabjgqrjg7Pjg6njgqTjg7Pjgrjjg6Pjg4PjgrjllY8zNTU0IENvbWJpbmF0aW9uIOWQiOagvApkZWYgZigpCglyZXR1cm4gZ2V0cy5zcGxpdCgiICIpLm1hcHt8ZXwgZS50b19pfQplbmQKbixtPWYoKQp4cz1mKCkKeXM9ZigpCgpzMT1uLW0KZHA9W10KKHMxKzEpLnRpbWVze3xpfAoJZHA8PHhzW2ldKnlzWzBdCn0KaWYgbT09MSB0aGVuCglwdXRzIGRwLm1heAplbHNlCgkxLnVwdG8obS0xKXt8cDF8CgkJdD1kcFswXQoJCWRwLm1hcCF7fHQyfAoJCQlpZiB0PHQyIHRoZW4KCQkJCXQ9dDIKCQkJZW5kCgkJCXQKCQl9CgkJZHAyPVswXSooczErMSkKCQl0PTAKCQkoczErMSkudGltZXN7fHAyfAoJCQlwMz1wMStwMgoJCQkjcCBbcDEscDIscDNdCgkJCWlmIHAyPT0wIHRoZW4KCQkJCWRwMlswXT1kcFswXSt4c1twM10qeXNbcDFdCgkJCQl0PWRwMlswXQoJCQllbHNlCgkJCQkKCQkJCWRwMltwMl09W3QsZHBbcDJdK3hzW3AzXSp5c1twMV1dLm1heAoJCQkJdD1bdCxkcDJbcDJdXS5tYXgKCQkJZW5kCgkJfQoJCSNwIGRwCgkJZHA9ZHAyCgkJCgl9CglwdXRzIGRwLm1heAplbmQ=