#include #include #include #include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f #define mem(a,x) memset(a,x,sizeof(a)) #define F first #define S second using namespace std; typedef long long ll; typedef pair pii; inline int in() { int res=0;char c;int f=1; while((c=getchar())<'0' || c>'9')if(c=='-')f=-1; while(c>='0' && c<='9')res=res*10+c-'0',c=getchar(); return res*f; } const int N=100010,MOD=1e9+7; map mp; int gcd(int n,int m){ return m == 0 ? n: gcd(m,n%m); } setst; int sum1[N]; int sum2[N]; int ar[N]; int ar2[N]; int main() { int T = in(); while(T--){ int n =in(); int m = in(); int mx = 0; mem(sum1,0); mem(sum2,0); for(int i=1;i<=n;i++){ ar[i] = in(); mx = max(mx,ar[i]); } for(int i=1;i<=m;i++){ ar2[i] = in(); mx = max(mx,ar2[i]); } for(int i=1;i<=n;i++) sum1[ar[i]] = sum1[ar[i]-1] + 1; for(int i=1;i<=m;i++) sum2[ar2[i]] = sum2[ar2[i]-1] + 1; int maxx= 0; for(int i=1;i<=mx;i++){ maxx = max(maxx,min(sum1[i],sum2[i])); } printf("%d\n",maxx); } return 0; }