#include<iostream>
#define int unsigned long long
using namespace std;
const int N=2e5+5;
int r=1000000000000,l,a[N],h[N],n,S,L,mid,ans;
bool check(int x)
{
int sum=0;
for(int i=1;i<=n;i++)
{
if(h[i]+a[i]*x>=L) sum+=h[i]+a[i]*x;
if(sum>S) break;
}
if(sum<S) return 1;
return 0;
}
signed 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];
int cnt=0;
while(l<=r)
{
mid=l+r>>1;
if(check(mid)){
l=mid+1;
ans=mid;
}
else r=mid-1;
cnt++;
if(cnt>=10000){
cout<<0;
exit(0);
}
}
cout<<ans+1;
}