#include #include #include #include #include #include #include #include using namespace std; using ll = long long; int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector a(n + 1), b(n + 1); for (int i = 0; i <= n; i++) { cin >> a[i]; } for (int i = 0; i <= n; i++) { cin >> b[i]; } vector d(n); for (int h = 0; h < n; h++) { cin >> d[h]; } sort(d.begin(), d.end(), greater<>()); vector dp(n + 2, 1 << 30); dp[1] = -1; int r = 0; for (int i = 0; i <= n; i++) { int h = 0; for (int j = 0; j <= n - i; j++) { if (i == 0 && j == 0) continue; int c = a[i] + b[j]; h = max(h, min(dp[j], dp[j + 1]) + 1); while (h < n && d[h] > c) h++; if (h < n) r = max(r, i + j); dp[j + 1] = h; } } cout << r << endl; return 0; }