#include<bits/stdc++.h>
using namespace std;
#ifndef ONLINE_JUDGE
#include "template.cpp"
#else
#define debug(...)
#define debugArr(a, n)
#endif
#define io ios_base::sync_with_stdio(false); cin.tie(NULL);
#define endl '\n'
void Wah() {
io;
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt","w",stdout);
#endif
}
// typedef vector<long long> vll;
// typedef long double ld;
// #define int long long
// typedef pair<int,int> pii;
const int N = 1e6+10;
int a[N], b[N];
vector<int> comp;
int canJump[N];
int lastSeen[N];
int t[4 * 2 * N]{};
void clearAll(){ /// run for 2n
}
void compress( int n ){
comp.assign(2*n,0);
for ( int i = 1; i <= n; i++ ) comp[i-1] = a[i];
for ( int i = 1; i <= n; i++ ) comp[i-1+n] = b[i];
sort(comp.begin(), comp.end());
comp.erase(unique(comp.begin(), comp.end()), comp.end());
for ( int i = 1; i <= n; i++ ) {
a[i] = lower_bound(comp.begin(), comp.end(), a[i]) - comp.begin() + 1;
b[i] = lower_bound(comp.begin(), comp.end(), b[i]) - comp.begin() + 1;
}
}
void calculateJump( int n ){
for ( int i = 1; i <= n; i++ ){
if ( lastSeen[a[i]] ) {
canJump[i] = i - lastSeen[a[i]] + 1;
lastSeen[b[i]] = i;
}
}
}
void build(int n, int b, int e) {
if (b == e) {
t[n] = INT_MAX; ///////////
return;
}
int mid = (b + e) >> 1, l = n << 1, r = l | 1;
build(l, b, mid);
build(r, mid + 1, e);
t[n] = max(t[l], t[r]); ///////////
}
void upd(int n, int b, int e, int i, int x) {
if (b > i || e < i) return;
if (b == e && b == i) {
t[n] = x; ///////////
return;
}
int mid = (b + e) >> 1, l = n << 1, r = l | 1;
upd(l, b, mid, i, x);
upd(r, mid + 1, e, i, x);
t[n] = max(t[l], t[r]); ///////////
}
int query(int n, int b, int e, int i, int j) {
if (b > j || e < i) return INT_MIN; /////////////
if (b >= i && e <= j) return t[n];
int mid = (b + e) >> 1, l = n << 1, r = l | 1;
int L = query(l, b, mid, i, j);
int R = query(r, mid + 1, e, i, j);
return max(L, R); ///////////////
}
void senritsu() {
int n; cin >> n;
for ( int i = 1; i <= n; i++ ) cin >> a[i];
for ( int i = 1; i <= n; i++ ) cin >> b[i];
build(1,1,2*n);
compress(n);
calculateJump(n);
}
signed main() {
Wah();
int tt = 1;
cin >> tt;
while ( tt-- > 0 ) {
senritsu();
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNpZm5kZWYgT05MSU5FX0pVREdFCiAgICAjaW5jbHVkZSAidGVtcGxhdGUuY3BwIgojZWxzZQogICAgI2RlZmluZSBkZWJ1ZyguLi4pCiAgICAjZGVmaW5lIGRlYnVnQXJyKGEsIG4pCiNlbmRpZgoKI2RlZmluZSBpbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsgCiNkZWZpbmUgZW5kbCAnXG4nCgp2b2lkIFdhaCgpIHsKICAgIGlvOwogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgICAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKICAgICNlbmRpZgp9CgovLyB0eXBlZGVmIHZlY3Rvcjxsb25nIGxvbmc+IHZsbDsKLy8gdHlwZWRlZiBsb25nIGRvdWJsZSBsZDsKLy8gI2RlZmluZSBpbnQgbG9uZyBsb25nCi8vIHR5cGVkZWYgcGFpcjxpbnQsaW50PiBwaWk7CgoKY29uc3QgaW50IE4gPSAxZTYrMTA7CmludCBhW05dLCBiW05dOwp2ZWN0b3I8aW50PiBjb21wOwppbnQgY2FuSnVtcFtOXTsKaW50IGxhc3RTZWVuW05dOwppbnQgdFs0ICogMiAqIE5de307Cgp2b2lkIGNsZWFyQWxsKCl7IC8vLyBydW4gZm9yIDJuCgp9Cgp2b2lkIGNvbXByZXNzKCBpbnQgbiApewogICAgY29tcC5hc3NpZ24oMipuLDApOwogICAgZm9yICggaW50IGkgPSAxOyBpIDw9IG47IGkrKyApIGNvbXBbaS0xXSA9IGFbaV07CiAgICBmb3IgKCBpbnQgaSA9IDE7IGkgPD0gbjsgaSsrICkgY29tcFtpLTErbl0gPSBiW2ldOwoKICAgIHNvcnQoY29tcC5iZWdpbigpLCBjb21wLmVuZCgpKTsKICAgIGNvbXAuZXJhc2UodW5pcXVlKGNvbXAuYmVnaW4oKSwgY29tcC5lbmQoKSksIGNvbXAuZW5kKCkpOwoKICAgIGZvciAoIGludCBpID0gMTsgaSA8PSBuOyBpKysgKSB7CiAgICAgICAgYVtpXSA9IGxvd2VyX2JvdW5kKGNvbXAuYmVnaW4oKSwgY29tcC5lbmQoKSwgYVtpXSkgLSBjb21wLmJlZ2luKCkgKyAxOwogICAgICAgIGJbaV0gPSBsb3dlcl9ib3VuZChjb21wLmJlZ2luKCksIGNvbXAuZW5kKCksIGJbaV0pIC0gY29tcC5iZWdpbigpICsgMTsKICAgIH0KfQoKdm9pZCBjYWxjdWxhdGVKdW1wKCBpbnQgbiApewogICAgZm9yICggaW50IGkgPSAxOyBpIDw9IG47IGkrKyApewogICAgICAgIGlmICggbGFzdFNlZW5bYVtpXV0gKSB7CiAgICAgICAgICAgIGNhbkp1bXBbaV0gPSBpIC0gbGFzdFNlZW5bYVtpXV0gKyAxOwogICAgICAgICAgICBsYXN0U2VlbltiW2ldXSA9IGk7CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIGJ1aWxkKGludCBuLCBpbnQgYiwgaW50IGUpIHsKICAgIGlmIChiID09IGUpIHsKICAgICAgICB0W25dID0gSU5UX01BWDsgLy8vLy8vLy8vLy8KICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkID0gKGIgKyBlKSA+PiAxLCBsID0gbiA8PCAxLCByID0gbCB8IDE7CiAgICBidWlsZChsLCBiLCBtaWQpOwogICAgYnVpbGQociwgbWlkICsgMSwgZSk7CiAgICB0W25dID0gbWF4KHRbbF0sIHRbcl0pOyAvLy8vLy8vLy8vLwp9Cgp2b2lkIHVwZChpbnQgbiwgaW50IGIsIGludCBlLCBpbnQgaSwgaW50IHgpIHsKICAgIGlmIChiID4gaSB8fCBlIDwgaSkgcmV0dXJuOwogICAgaWYgKGIgPT0gZSAmJiBiID09IGkpIHsKICAgICAgICB0W25dID0geDsgLy8vLy8vLy8vLy8KICAgICAgICByZXR1cm47CiAgICB9CiAgICBpbnQgbWlkID0gKGIgKyBlKSA+PiAxLCBsID0gbiA8PCAxLCByID0gbCB8IDE7CiAgICB1cGQobCwgYiwgbWlkLCBpLCB4KTsKICAgIHVwZChyLCBtaWQgKyAxLCBlLCBpLCB4KTsKICAgIHRbbl0gPSBtYXgodFtsXSwgdFtyXSk7IC8vLy8vLy8vLy8vCn0KCmludCBxdWVyeShpbnQgbiwgaW50IGIsIGludCBlLCBpbnQgaSwgaW50IGopIHsKICAgIGlmIChiID4gaiB8fCBlIDwgaSkgcmV0dXJuIElOVF9NSU47IC8vLy8vLy8vLy8vLy8KICAgIGlmIChiID49IGkgJiYgZSA8PSBqKSByZXR1cm4gdFtuXTsKICAgIGludCBtaWQgPSAoYiArIGUpID4+IDEsIGwgPSBuIDw8IDEsIHIgPSBsIHwgMTsKICAgIGludCBMID0gcXVlcnkobCwgYiwgbWlkLCBpLCBqKTsKICAgIGludCBSID0gcXVlcnkociwgbWlkICsgMSwgZSwgaSwgaik7CiAgICByZXR1cm4gbWF4KEwsIFIpOyAvLy8vLy8vLy8vLy8vLy8KfQoKdm9pZCBzZW5yaXRzdSgpIHsgICAKCiAgICBpbnQgbjsgY2luID4+IG47CiAgICBmb3IgKCBpbnQgaSA9IDE7IGkgPD0gbjsgaSsrICkgY2luID4+IGFbaV07CiAgICBmb3IgKCBpbnQgaSA9IDE7IGkgPD0gbjsgaSsrICkgY2luID4+IGJbaV07CiAgICAKICAgIGJ1aWxkKDEsMSwyKm4pOwogICAgY29tcHJlc3Mobik7CiAgICBjYWxjdWxhdGVKdW1wKG4pOwogICAgCgoKfQoKc2lnbmVkIG1haW4oKSB7CiAgICBXYWgoKTsKICAgIGludCB0dCA9IDE7CiAgICBjaW4gPj4gdHQ7CiAgICB3aGlsZSAoIHR0LS0gPiAwICkgewogICAgICAgIHNlbnJpdHN1KCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==