#include #include #include #define MAXN 100000 #define MAXA 1000000 using namespace std; void Read(int &x){ char c; while(c=getchar(),c!=EOF) if(c>='0'&&c<='9'){ x=c-'0'; while(c=getchar(),c>='0'&&c<='9') x=x*10+c-'0'; ungetc(c,stdin); return; } } int fa[MAXA+10],fb[MAXA+10],n,a[MAXN+10],b[MAXN+10],m,ans,T; void read(){ Read(n),Read(m); int i; for(i=1;i<=n;i++) Read(a[i]); for(i=1;i<=m;i++) Read(b[i]); } void solve(){ int i; ans=0; for(i=n;i;i--) fa[a[i]]=fa[a[i]+1]+1; for(i=m;i;i--) fb[b[i]]=fb[b[i]+1]+1; for(i=n;i;i--) ans=max(min(fa[a[i]],fb[a[i]]),ans); printf("%d\n",ans); for(i=n;i;i--) fa[a[i]]=0; for(i=m;i;i--) fb[b[i]]=0; } int main() { Read(T); while(T--){ read(); solve(); } }