#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, h, a;
while (cin >> n >> h >> a) {
vector<pair<int, int>> m(n); //monster<h,a>
vector<int> dp(n); //dp[i]为到i号怪物的总击败的数量
for (int i = 0; i < n; ++i)
cin >> m[i].first;
for (int j = 0; j < n; ++j) {
cin >> m[j].second;
}
sort(m.begin(), m.end());//怪物按h升序,同一h,按a升序
for (int i = 0; i < n; ++i) {
if (m[i].first >= h || m[i].second >= a)
dp[i] = -1; //为-1代表不能打败
else
dp[i] = 1;
}
for (int i = 0; i < n; ++i) {
if (dp[i] == -1)
continue;
for (int j = 0; j < i; ++j) {
if (dp[j] == -1) continue;
if (m[i].first > m[j].first && m[i].second > m[j].second)
dp[i] = max(dp[i], dp[j] + 1);
}
}
int cnt = 0;
for (int k = 0; k < n; ++k) {
cnt = max(dp[k], cnt);
}
cout << cnt;
}
return 0;
}