Problem: You are given three positive (i.e. strictly greater than zero) integers x, y and z.

Your task is to find positive integers a, b and c such that x = max(a, b), y = max(a, c) and z = max(b, c), or determine that it is impossible to find such a, b and c.

You have to answer t independent test cases. Print required a, b and c in any (arbitrary) order.

Input

The first line of the input contains one integer t (1 ≤ t ≤ 2 ⋅ 10^4) — the number of test cases. Then t test cases follow.

The only line of the test case contains three integers x, y, and z (1 ≤ x, y, z ≤ 10^9).

Output

For each test case, print the answer:

  * "NO" in the only line of the output if a solution doesn't exist; 
  * or "YES" in the first line and any valid triple of positive integers a, b and c (1 ≤ a, b, c ≤ 10^9) in the second line. You can print a, b and c in any order. 

Example

Input


5
3 2 3
100 100 100
50 49 49
10 30 20
1 1000000000 1000000000


Output


YES
3 2 1
YES
100 100 100
NO
NO
YES
1 1 1000000000

Solution (in PYTHON3):

Solution:
#!/bin/python3

import math
import os
import random
import re
import sys
from collections import defaultdict


# # def getMapCount(mapping, key):



# #     if key in mapping:
# #         return mapping[key]
# #     else:
# #         return 0

# def binSearch(arr, item):
#     low, hi = 0, len(arr) - 1
#     while low <= hi:
#         mid = (low + hi) // 2

#         if arr[mid] < item:
#             low = mid + 1
#         else:
#             hi = mid -1 
#             ans = mid
#         mid = (low + hi )// 2
    
#     return mid


# #exact binarySearch
# def binarySearch (arr, item): 
#     low, hi = 0, len(arr) - 1
    
#     while low <= hi:
#         mid = (low + hi) // 2

#         if arr[mid] == x: 
#             return mid 
        
#          if arr[mid] < item:
#             low = mid + 1
#         else:
#             hi = mid -1 
#     return -1

  

# # print(binSearch([1,2,4,5,9,11,13,99,100], 8))
# def countTriplets(arr, r):
#     # arr = sorted(arr)
#     countMap = dict()
#     index = 0
#     for item in arr:
#         if item not in countMap:
#             countMap[item] = [index]

#         else:
#             countMap[item].append(index)

#         index += 1

#     count = 0
#     print(countMap)
#     indx  = 0
#     for key in countMap:
#         for indx in countMap[key]:
#             if r == 1:
#                 count += (countMap[key] * (countMap[key] - 1) * (countMap[key] - 2)) // 6
#             else:
#                 count += countMap[key] * getMapCount(countMap, indx, key * r) * getMapCount(countMap, key * r * r)
#         indx += 1

#     return count

# fib_ara = [1,1]
# def fib():
#     while fib_ara[-1] < 10**9:
#         fib_ara.append(fib_ara[-1] + fib_ara[-2])

# fib()


case = int(input())
 
for i in range(case):
    a = [int(x) for x in  input().split() ]
    x,y,z = a[0],a[1], a[2]
    ara = [a[0], a[1], a[2]]
    flg = False
    for i in range(3):
        for j in range(3):
            for k in range(3):
                ara = [a[i], a[j], a[k] ] 
                if a[0] == max(ara[0],ara[1]) and a[1] == max(ara[0],ara[2]) and a[2] == max(ara[1],ara[2]):
                    flg = True
                    print('YES')
                    for item in ara:
                        print(item, ' ', end='')
                    print()
                    break
            if flg:
                break
        if flg: 
            break
    if not flg:
        print('NO')