#include <bits/stdc++.h>
using namespace std;
#define FIO ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define pb push_back
#define fi first
#define se second
const ll N = 2e5 + 5;
const ll MOD = 1e9 + 7;
const ll INF = 2e18;
int main(){
FIO
ll n,m; cin>>n>>m;
vector<ll> a(n),b(n);
for(ll i=0; i<n; i++) cin>>a[i];
for(ll i=0; i<n; i++) cin>>b[i], a[i]=max(a[i],b[i]);
ll l=0,r=1e18;
while(l<r){
ll mid=(l+r+1)/2;
ll sk=0;
for(int i=0; i<n; i++){
ll sum=mid;
ll ap=min(m,(sum+a[i]-1)/a[i]);
sk+=ap;
sum-=ap*a[i];
if(sum<=0) continue;
ll bp=(sum+b[i]-1)/b[i];
sk+=bp;
}
if(sk>n*m) r=mid-1;
else l=mid;
}
cout<<l;
return 0;
}