#include <iostream>
#include <stack>
using namespace std;
#define ll long long
int main()
{
int T;
cin>>T;
while(T--)
{
ll int N,M;
cin>>N>>M;
stack<ll int> S;
ll int H[N],C[N];
for(ll int i=0;i<N;i++){cin>>H[i];}
for(ll int i=0;i<N;i++){cin>>C[i];}
/// i made a stack which will keep the track of the color of wall
///stack the take index as input
S.push(0);
for(ll int i=1;i<N;i++)
{
if(H[i]<H[S.top()])
{
if(C[i]!=C[S.top()]){S.push(i);}
}
else{
while(H[i]>=H[S.top()])
{
S.pop();
if(S.empty()){break;}
}
if(!S.empty()){
if(C[S.top()]!=C[i]){
S.push(i);}}
else{S.push(i);}
}
}
ll int ans=0;
while(!S.empty())
{
S.pop();
ans++;
}
cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RhY2s+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCmludCBtYWluKCkKewogICAgaW50IFQ7CiAgICBjaW4+PlQ7CiAgICB3aGlsZShULS0pCiAgICB7CiAgICAgICAgbGwgaW50IE4sTTsKICAgICAgICBjaW4+Pk4+Pk07CiAgICAgICAgc3RhY2s8bGwgaW50PiBTOwogICAgICAgIGxsIGludCBIW05dLENbTl07CiAgICAgICAgZm9yKGxsIGludCBpPTA7aTxOO2krKyl7Y2luPj5IW2ldO30KICAgICAgICBmb3IobGwgaW50IGk9MDtpPE47aSsrKXtjaW4+PkNbaV07fQogICAgCS8vLyBpIG1hZGUgYSBzdGFjayB3aGljaCB3aWxsIGtlZXAgdGhlIHRyYWNrIG9mIHRoZSBjb2xvciBvZiB3YWxsCiAgICAJLy8vc3RhY2sgdGhlIHRha2UgaW5kZXggYXMgaW5wdXQKICAgIAlTLnB1c2goMCk7CgogICAgICAgIGZvcihsbCBpbnQgaT0xO2k8TjtpKyspCiAgICAgICAgewogICAgICAgICAgICBpZihIW2ldPEhbUy50b3AoKV0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKENbaV0hPUNbUy50b3AoKV0pe1MucHVzaChpKTt9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgd2hpbGUoSFtpXT49SFtTLnRvcCgpXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgUy5wb3AoKTsKICAgICAgICAgICAgICAgIGlmKFMuZW1wdHkoKSl7YnJlYWs7fQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCFTLmVtcHR5KCkpewogICAgICAgICAgICBpZihDW1MudG9wKCldIT1DW2ldKXsKICAgICAgICAgICAgUy5wdXNoKGkpO319CiAgICAgICAgICAgIGVsc2V7Uy5wdXNoKGkpO30KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBsbCBpbnQgYW5zPTA7CiAgICAgICAgd2hpbGUoIVMuZW1wdHkoKSkKICAgICAgICB7CiAgICAgICAgICAgIFMucG9wKCk7CiAgICAgICAgICAgIGFucysrOwogICAgICAgIH0KICAgICAgICBjb3V0PDxhbnM8PGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=