#include<bits/stdc++.h>
using namespace std;
unsigned long long n,k,s,c,sn,b[200001],a[200001];
bool ch(unsigned long long x){
sn=0;
for(unsigned long long i=1;i<=n;i++){
unsigned long long h=1ULL*a[i]+x*b[i];
if(h>=k)sn=sn+h;
if(sn>=s)return 1;
}
return 0;
}
int main(){
cin>>n>>s>>k;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
cin>>b[i];
}
unsigned long long l,h;
l=1;
h=max(s,k);
while(l<h){
unsigned long long m=(l+h)>>1;
if(ch(m)){
h=m;
c=m;
}
else{
l=m+1;
}
}
cout<<c;
return 0;
}