#include<bits/stdc++.h>
using namespace std;
#define int long long
int t,maxn,ans=0,n,m;
int l,r,mid;
int a[1000005],b[1000005];
bool check(int x)
{
int s=0;
for(int i=1;i<=t;i++){
if(a[i]+b[i]*x>=m){
s+=a[i]+b[i]*x;
}
if(s>=n){
break;
}
}
if(s<=n){
return 1;
}
return 0;
}
signed main () {
cin >> t >> n >> m;
for(int i=1;i<=t;i++){
cin >> a[i];
}
for(int i=1;i<=t;i++){
cin >> b[i];
}
l=1,r=1e18;
int p=0;
if(t==1){
int i;
if(a[1]>=n){
cout << 0;
return 0;
}
for(i=1;i<=10005;i++){
if(a[1]+b[1]*i>=n){
cout << i;
return 0;
}
}
}
while(l<=r){
mid=l+(r-l)/2;
if(check(mid)){
ans=mid;
l=mid+1;
}
else{
r=mid-1;
p++;
}
}
if(p>=10000){
cout<<0;
return 0;
}
cout << ans+1;
return 0;
}