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 common_member(a, b): 
    a_set = set(a) 
    b_set = set(b) 
    if (a_set & b_set): 
        return True 
    else: 
        return False

if __name__=="__main__":
    t = int(input())

    nums = []

    for i in range(t):
        n_m = [int(x) for x in input().split()]
        nums.append([])
        nums[-1].append([int(x) for x in input().split()])
        nums[-1].append([int(x) for x in input().split()])

    output = []

    for num in nums:
        a = num[0]
        b = num[1]
        common = list(set(a).intersection(b))
        if len(common) > 0:
            output.append(['YES', [1, common[0]]])
        else:
            output.append(['NO'])
    for out in output:
        if out[0] == 'YES':
            print(out[0])
            print(*out[1])
        else:
            print(out[0])