1
2 2
1 1
1 2
 1
1 3
3
1 2 3
 1
1 1
1000
1000
 1
2 2
2 2
2 2
 5
4 5
10 8 6 4
1 2 3 4 5
1 1
3
3
1 1
3
2
5 3
1000 2 2 2 3
3 1 5
5 5
1 2 3 4 5
1 2 3 4 5
 1
4 4
1 1 1 1
1 2 3 4
 1
2 3
1 1
1 2 3

YES
1 1
 YES
1 3
 YES
1 1000
 YES
1 2
 YES
1 4
YES
1 3
NO
YES
1 3
YES
1 1
 YES
1 1
 YES
1 1

import java.util.ArrayList;
import java.util.Scanner;

public class common_subsequence_codeforces {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int t = input.nextInt();
        while (t!=0){
            t--;
            int n = input.nextInt();
            int m = input.nextInt();
            ArrayList<Integer> a = new ArrayList<>();
            ArrayList<Integer> b = new ArrayList<>();
            for(int i=0;i<n;i++){
                a.add(input.nextInt());
            }
            for(int j =0;j<m;j++){
                b.add(input.nextInt());
                //System.out.println("+1");
            }
            //int l = Math.max(n,m);
            boolean b1 = true;
//            for(int i=0;i<n;i++){
//                System.out.print(a.get(i)+" ");
//            }
//            System.out.println();
//            for(int j =0;j<m;j++){
//                System.out.print(b.get(j)+" ");
//            }
            for(int i=0;i<n;i++){
                for(int j =0;j<m;j++){
                    if(a.get(i).equals(b.get(j))){
                        System.out.println("YES ");
                        System.out.println("1 "+a.get(i));
                        b1=false;
                        break;
                    }
                    if(!b1) break;
                }
            }
            if(b1) System.out.println("NO");
        }
    }
}
