#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ll;
typedef pair<int,int> pii;
const int maxn=5e5+34;
ll a[maxn],cnt,idx,tot,h[maxn];
int check(int n,ll ans,ll len,ll sum){
ll can=0;
for(int i=1;i<=n;i++){
if(h[i]+ans*a[i]>=len)can+=h[i]+ans*a[i];
if(can>=sum)return 1;
}
return can>=sum;
}
void work(){
int n,m,wid;
ll ans=0,MAX=0;
ll sum,len;
scanf("%d%llu%llu",&n,&sum,&len);
for(int i=1;i<=n;i++)scanf("%llu",&h[i]);
for(int i=1;i<=n;i++)scanf("%llu",&a[i]);
ll l=0,r=max(sum,len);
while(l<=r){
ll mid=(l+r)/2;
if(check(n,mid,len,sum))r=mid-1,ans=mid;
else l=mid+1;
// cout<<l<<' '<<r<<endl;
}
printf("%llu\n",ans);
}
int main()
{
work();
return 0;
}