#include<iostream>
#include<stdio.h>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=1000;
char s1[300],s2[300],s3[600]; //数组的长度
int len1,len2,len3;
int visit[maxn][maxn];
int dfs(int i,int j,int k)
{
if(visit[i][j]) return 0;
visit[i][j]=1;
if(k==len3) return 1;
if(s1[i]==s3[k])
{
if(dfs(i+1,j,k+1))
return 1;
}
if(s2[j]==s3[k])
{
if(dfs(i,j+1,k+1))
return 1;
}
return 0;//如果越界,不考虑;
}
int main(void)
{
int n,m;
int i,j,k;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%s %s %s",s1,s2,s3);
len1=strlen(s1);
len2=strlen(s2);
len3=strlen(s3);
memset(visit,0,sizeof(visit));
printf("Data set %d: ",i);
printf(dfs(0,0,0)?"yes\n":"no\n");
}
}