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

def binary(i,l,h,arr2):
    mid=l+(h-l)//2
    if arr2[mid]==i:
        return True
    elif l>h:
        return False
    else:
        if arr2[mid]>i:
            return binary(i,l,mid-1,arr2)
        else:
            return binary(i,mid+1,h,arr2)
    
for i in range(int(input())):
    n,m=map(int,input().split())
    arr1=list(map(int,input().split()))
    arr2=list(map(int,input().split()))
    arr1.sort()
    arr2.sort()
    for i in arr1:
        if binary(i,0,m-1,arr2):
            print("YES")
            print(1,i)
            break
    else:
        print("NO")
        