#include<iostream>
#include<cstdio>
using namespace std;
const int N=2e5;
const unsigned long long MAX=1e17;
unsigned long long n,s,l,h[N],a[N];
bool check(unsigned long long x){
unsigned long long sum=0;
for(long long i=1;i<=n;i++){
if(h[i]+a[i]*x>=l)sum+=h[i]+a[i]*x;
}
if(sum>=s)return true;
return false;
}
int main(){
std::ios::sync_with_stdio(false);
cin>>n>>s>>l;
for(int i=1;i<=n;i++)cin>>h[i];
for(int i=1;i<=n;i++)cin>>a[i];
unsigned long long l=0,r=MAX;
while(l<r){
unsigned long long mid=(l+r)>>1;
if(check(mid))r=mid;
else l=mid+1;
}
cout<<l;
return 0;
}