#include<bits/stdc++.h>
#define ri register int
#define ll long long
using namespace std;
const int maxn=1e6+7;
const int mod=998244353;
int n,k;
int a[maxn],b[maxn];
int vis[maxn];
void solve(){
cin>>n>>k;
for(ri i=1;i<=n;i++)vis[i]=0;
for(ri i=1;i<=n;i++)cin>>a[i];
for(ri i=1;i<=n;i++)cin>>b[i];
if(k==1){
int tota=unique(a+1,a+1+n)-a-1;
int totb=unique(b+1,b+1+n)-b-1;
int cur=1;
for(ri i=1;i<=totb;i++){
while(cur<=tota&&a[cur]!=b[i])cur++;
if(cur>tota){
cout<<"No\n";
return;
}
cur++;
}
cout<<"Yes\n";
return;
}
for(ri i=1;i<=n;i++)vis[b[i]]=1;
a[0]=0;a[n+1]=0;
for(ri i=1;i<=n;i++){
if(!vis[a[i]])a[i]=0;
}
for(ri i=1;i<=n;i++){
if(!a[i]){
if(a[i-1])a[i]=a[i-1];
}
}
for(ri i=n;i;i--){
if(!a[i]){
if(a[i+1])a[i]=a[i+1];
}
}
for(ri i=1;i<=n;i++)vis[i]=0;
for(ri i=1;i<=n;i++)vis[a[i]]++;
for(ri i=1;i<=n;i++){
if(!vis[b[i]]){
cout<<"No\n";
return;
}
}
bool r=0;
for(ri i=1;i<=n;i++){
if(vis[a[i]]>=2)r=1;
}
if(!r){
for(ri i=1;i<=n;i++){
if(a[i]!=b[i]){
cout<<"No\n";
return;
}
}
cout<<"Yes\n";
return;
}
cout<<"Yes\n";
}
signed main(){
ios::sync_with_stdio(0);
int T;cin>>T;
while(T--)solve();
return 0;
}