#include<bits/stdc++.h>
using namespace std;
long long n,s,l;
long long h[200010],a[200010];
bool check(long long x)
{
long long i,sum=0;
for(i=1;i<=n;i++)
{
if(h[i]+a[i]*x>=l)
{
sum+=h[i]+a[i]*x;
}
}
if(sum>=s) return 1;
else return 0;
}
int main()
{
long long i,j,k,maxa=0;
cin>>n>>s>>l;
for(i=1;i<=n;i++)
{
cin>>h[i];
}
for(i=1;i<=n;i++)
{
cin>>a[i];
maxa=max(maxa,a[i]);
}
int left=0,right=s/maxa+1;
while(right-left>=5)
{
int mid=(left+right)/2;
if(check(mid)==1)
{
right=mid;
}
else
{
left=mid+1;
}
}
for(i=left;i<=right;i++)
{
if(check(i)==1)
{
cout<<i;
break;
}
}
}