/*
* @Author: hungeazy
* @Date: 2026-03-04 23:24:15
* @Last Modified by: hungeazy
* @Last Modified time: 2026-04-06 21:33:05
*/
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = (int)1e6+10;
int n,m,A[N],B[N];
void sub1()
{
vector<int> vec;
int ans = 0;
for (int i = 1; i <= n; i++)
{
if (vec.empty())
vec.push_back(A[i]);
else if (A[i] >= vec.back())
vec.push_back(A[i]);
vector<int> vec2;
for (int j = m; j >= 1; j--)
{
if (vec2.empty())
vec2.push_back(B[j]);
else if (B[j] <= vec2.back())
vec2.push_back(B[j]);
if (vec2.back() >= vec.back())
{
int len = vec.size()+vec2.size();
ans = max(ans,len);
}
}
}
cout << ans;
}
void sub2()
{
int left = n, right = 1;
for (int i = 2; i <= n; i++)
if (A[i] < A[i-1])
{
left = i-1;
break;
}
for (int i = m-1; i >= 1; i--)
if (B[i] > B[i+1])
{
right = i+1;
break;
}
int ans = 0;
bool check = false;
for (int i = 1; i <= left; i++)
{
while (A[i] > B[right])
{
right++;
if (right > m)
{
check = true;
break;
}
}
if (check) break;
ans = max(ans,i+(m-right+1));
}
cout << ans;
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> n;
for (int i = 1; i <= n; i++) cin >> A[i];
cin >> m;
for (int i = 1; i <= m; i++) cin >> B[i];
// if (n <= 5e3 and m <= 5e3) sub1();
sub2();
return 0;
}
LyoKKiBAQXV0aG9yOiBodW5nZWF6eQoqIEBEYXRlOiAgIDIwMjYtMDMtMDQgMjM6MjQ6MTUKKiBATGFzdCBNb2RpZmllZCBieTogICBodW5nZWF6eQoqIEBMYXN0IE1vZGlmaWVkIHRpbWU6IDIwMjYtMDQtMDYgMjE6MzM6MDUKKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZyAKY29uc3QgaW50IE4gPSAoaW50KTFlNisxMDsKaW50IG4sbSxBW05dLEJbTl07Cgp2b2lkIHN1YjEoKQp7CiAgICB2ZWN0b3I8aW50PiB2ZWM7CiAgICBpbnQgYW5zID0gMDsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgIHsKICAgICAgICBpZiAodmVjLmVtcHR5KCkpCiAgICAgICAgICAgIHZlYy5wdXNoX2JhY2soQVtpXSk7CiAgICAgICAgZWxzZSBpZiAoQVtpXSA+PSB2ZWMuYmFjaygpKQogICAgICAgICAgICB2ZWMucHVzaF9iYWNrKEFbaV0pOwogICAgICAgIHZlY3RvcjxpbnQ+IHZlYzI7CiAgICAgICAgZm9yIChpbnQgaiA9IG07IGogPj0gMTsgai0tKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKHZlYzIuZW1wdHkoKSkKICAgICAgICAgICAgICAgIHZlYzIucHVzaF9iYWNrKEJbal0pOwogICAgICAgICAgICBlbHNlIGlmIChCW2pdIDw9IHZlYzIuYmFjaygpKQogICAgICAgICAgICAgICAgdmVjMi5wdXNoX2JhY2soQltqXSk7CiAgICAgICAgICAgIGlmICh2ZWMyLmJhY2soKSA+PSB2ZWMuYmFjaygpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpbnQgbGVuID0gdmVjLnNpemUoKSt2ZWMyLnNpemUoKTsKICAgICAgICAgICAgICAgIGFucyA9IG1heChhbnMsbGVuKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgYW5zOwp9Cgp2b2lkIHN1YjIoKSAKewogICAgaW50IGxlZnQgPSBuLCByaWdodCA9IDE7CiAgICBmb3IgKGludCBpID0gMjsgaSA8PSBuOyBpKyspCiAgICAgICAgaWYgKEFbaV0gPCBBW2ktMV0pCiAgICAgICAgewogICAgICAgICAgICBsZWZ0ID0gaS0xOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICBmb3IgKGludCBpID0gbS0xOyBpID49IDE7IGktLSkKICAgICAgICBpZiAoQltpXSA+IEJbaSsxXSkKICAgICAgICB7CiAgICAgICAgICAgIHJpZ2h0ID0gaSsxOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICBpbnQgYW5zID0gMDsKICAgIGJvb2wgY2hlY2sgPSBmYWxzZTsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGxlZnQ7IGkrKykKICAgIHsKICAgICAgICB3aGlsZSAoQVtpXSA+IEJbcmlnaHRdKQogICAgICAgIHsKICAgICAgICAgICAgcmlnaHQrKzsKICAgICAgICAgICAgaWYgKHJpZ2h0ID4gbSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2hlY2sgPSB0cnVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKGNoZWNrKSBicmVhazsKICAgICAgICBhbnMgPSBtYXgoYW5zLGkrKG0tcmlnaHQrMSkpOwogICAgfQogICAgY291dCA8PCBhbnM7Cn0KCnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKICAgIGNpbiA+PiBuOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gQVtpXTsKICAgIGNpbiA+PiBtOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbTsgaSsrKSBjaW4gPj4gQltpXTsKICAgIC8vIGlmIChuIDw9IDVlMyBhbmQgbSA8PSA1ZTMpIHN1YjEoKTsKICAgIHN1YjIoKTsKICAgIHJldHVybiAwOwp9