#include<bits/stdc++.h>
using namespace std;
int h1[100001],h2[100001],p[100005]={1};
signed main(){
for(int i=1;i<=1e5;i++){
p[i]=(p[i-1]*131)%1000000007;
}
int T;
cin>>T;
while(T--){
memset(h1,0,sizeof(h1));
memset(h2,0,sizeof(h2));
int n,m;
string s1,s2;
cin>>n>>m>>s1>>s2;
int seed=131,flg1=1,flg2=1;
for(int i=0;i<n;i++){
if(s1[i]!=s2[i]){
flg1=0;
break;
}
}
for(int i=n-1,j=m-1;i>=0;i--,j--){
if(s1[i]!=s2[j]){
flg2=0;
break;
}
}
if(flg1==1||flg2==1){
cout<<"Yes\n";
continue;
}
for(int i=1;i<=n;i++){
h1[i]=(h1[i-1]*seed+s1[i-1]-'a'+1)%1000000007;
}
for(int i=1;i<=m;i++){
h2[i]=(h2[i-1]*seed+s2[i-1]-'a'+1)%1000000007;
}
bool f=0;
for(int i=0;i<n;i++){
if(h1[i]==h2[i]){
int t1=(h1[n]-h1[i]*p[n-i]%1000000007+1000000007)%1000000007;
int l=m-(n-i);
int t2=(h2[m]-h2[l]*p[n-i]%1000000007+1000000007)%1000000007;
if(t1==t2){
cout<<"Yes\n";
f=1;
break;
}
}
}
if(!f){
cout<<"No\n";
}
}
return 0;
}