#include<bits/stdc++.h>
using namespace std;
int n,h[200010],a[200010];
long long S,L;
bool check(long long x){
unsigned long long cnt=0;
for(int i=1;i<=n;i++)
if(1LL*(h[i])+1LL*(a[i])*x>=L) cnt+=(1LL*(h[i])+1LL*(a[i])*x);
return cnt>=S;
}
int main(){
scanf("%d%lld%lld",&n,&S,&L);
for(int i=1;i<=n;i++) scanf("%d",&h[i]);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
long long l=0,r=1e18,ans;
if(check(0)) printf("0"),exit(0);
while(l<=r){
long long mid=l+(r-l>>1);
if(check(mid)) ans=mid,r=mid-1;
else l=mid+1;
}
printf("%lld",ans);
return 0;
}