#include <iostream>
using namespace std;
typedef long long ll;
const int N = 2e5 + 10;
ll h[N], a[N];
ll n, s, len;
bool check(ll day){
ll res = 0;
for (int i = 1; i <= n; ++i) {
if (h[i] + a[i] * day >= len)
res += (h[i] + a[i] * day);
if (res >= s)
return true;
}
return false;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> s >> len;
for (int i = 1; i <= n; ++i) {
cin >> h[i];
}
for (int i = 1; i <= n; ++i) {
cin >> a[i];
}
ll l = 0, r = 1e16;
while (l <= r){
ll mid = l + r >> 1;
if (check(mid))
r = mid - 1;
else
l = mid + 1;
}
cout << l << endl;
return 0;
}