#include<stdio.h>
#include<stdlib.h>
typedef struct TNode* BinTree;
struct TNode {
int data;
BinTree Left, Right;
int flag;};
int Judge(BinTree BST, int X);voidEflag(BinTree BST);
BinTree Insert(BinTree BST, int X);voidFreeTree(BinTree BST);
int main(){
int N,L, i, flag, temp;
BinTree BST=NULL;scanf("%d",&N);while(N){scanf("%d",&L);for(i =0; i <N; i++){scanf("%d",&temp);BST=Insert(BST, temp);}while(L--){
flag =1;for(i =0; i <N; i++){scanf("%d",&temp);if(flag&&!Judge(BST, temp)) flag =0;}if(flag)printf("Yes\n");elseprintf("No\n");Eflag(BST);}FreeTree(BST);BST=NULL;scanf("%d",&N);}return0;}
int Judge(BinTree BST, int X){if(!BST->flag){if(X==BST->data){BST->flag =1;return1;}elsereturn0;}else{if(X<BST->data)returnJudge(BST->Left,X);elseif(X>BST->data)returnJudge(BST->Right,X);elsereturn0;}}voidEflag(BinTree BST){if(BST->Left)Eflag(BST->Left);if(BST->Right)Eflag(BST->Right);BST->flag =0;}
BinTree Insert(BinTree BST, int X){if(!BST){BST=malloc(sizeof(struct TNode));BST->flag =0;BST->data =X;BST->Left =BST->Right =NULL;}else{if(X<BST->data)BST->Left =Insert(BST->Left,X);elseif(X>BST->data)BST->Right =Insert(BST->Right,X);}returnBST;}voidFreeTree(BinTree BST){if(BST->Left)FreeTree(BST->Left);if(BST->Right)FreeTree(BST->Right);free(BST);}