#include <iostream>
#include <algorithm>
using namespace std;
typedef struct TreeNode{
struct TreeNode *left,*right;
int data;
}TreeNode, *Tree;
Tree insert(Tree T,int x){
if(T==NULL){
T=(Tree)malloc(sizeof(struct TreeNode));
T->left=T->right=NULL;
T->data=x;
}
else if(x<T->data){
T->left=insert(T->left,x);
}
else{
T->right=insert(T->right,x);
}
return T;
}
Tree creat(int n){
Tree T =NULL;
int x;
while(n--){
cin>>x;
T=insert(T,x);
}
return T;
}
bool judge(Tree T,Tree R){
if(!T&&!R)
return true;
else if((!T&&R)||(T&&!R))
return false;
else
return judge(T->left, R->left)&&judge(T->right, R->right);
}
int main(){
int n,t;
Tree T;
while(cin>>n&&n!=0){
cin>>t;
T=creat(n);
while(t--){
Tree R=creat(n);
if(judge(T,R)){
cout<<"Yes"<<endl;
}
else{
cout<<"No"<<endl;
}
}
}
return 0;
}
09-16
1047
08-01
582
12-08
976
09-18
201
12-02
498
07-03
627