#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define vi vector
#define vvi vector
#define pii pair<int,int>
#define vii vector
#define fora(i,a,b) for(ll i=a;i<b;i++)
#define fors(i,a,b) for(ll i=a;i<b;i–)
#define ff first
#define ss second
#define setBits(x) builtin_popcount(x)
const int N=1e5+2, MOD=1e9+7;
#define IOS ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
//------------------------------------------------------------
int m,n;
ll fastmodexp(ll a,ll b)
{
ll res=1;
while(b>0){
if(b&1){
res=(res*a)%mod;
}
a=(a*a)%mod;
b=b>>1;
}
return res;
}
bool ispowerof2(int x)
{
return (!(x&(x-1)));
}
int binarysearch(vector &arr,int z,int l,int r)
{
//printf("&\n");
int mid=(l+r)/2;
if(arr[mid]>z)
{
r=mid-1;
if(arr[r]<z || r==-1)
return r+1;
else
return binarysearch(arr,z,l,r);
}
else if(arr[mid]<z)
{
l=mid+1;
if(arr[l]>z || l==m*n)
return l;
else
return binarysearch(arr,z,l,r);
}
else
{
return mid;
}
}
float min(float op,float b)
{
return op>b?b:op;
}
bool ispresent(int i, vector &arr)
{
int k=count(arr.begin(),arr.end(),i);
if(k>0)
return 1;
else
return 0;
}
//------------------------------------------------------------------------------------------------------------------------------
int LIS(int *a,int size)
{
int cnt=1;
int pre=0;
for(int i=0;i<size-1;i++)
{
if(a[i]<=a[i+1])
cnt++;
else{
pre=max(cnt,pre);
cnt=1;
}
}
pre=max(cnt,pre);
//cout<<pre<<"\n";
return pre;
}
void solve()
{
int n,m;
cin>>n>>m;
int a[n];
int b[m];
for(int i=0;i<n;i++)
cin>>a[i];
for(int i=0;i<m;i++)
cin>>b[i];
cout<<LIS(&a[0],n)+LIS(&b[0],m);
}
//------------------------------------------------------------------------------------------------
int main()
{
IOS
int t;
cin>>t;
while(t--)
{
solve();
cout<<"\n";
}
}