#include<bits/stdc++.h>
using namespace std;
unsigned long long s,l;
int n;
unsigned long long h[200001];
unsigned long long a[200001];
unsigned long long sum(unsigned long long w){
unsigned long long hh=0;
for(int i=1;i<=n;i++){
if((w*(a[i]-1)+h[i])>=l)
hh=hh+w*(a[i]-1)+h[i];
}
return hh;
}
unsigned long long binary_search(unsigned long long f,unsigned long long r){
unsigned long long mid=(f+r)/2;
if(r-f<=1){
return mid;
}
if(sum(mid)>=s){
binary_search(f,mid);
}
else {
binary_search(mid,r);
}
}
int main() {
cin>>n>>s>>l;
for(int i=1;i<=n;i++){
cin>>h[i];
}
for(int i=1;i<=n;i++){
cin>>a[i];
}
cout<<binary_search(0,1000000000000000000);
return 0;
}