You are given $n$ integers $a_1, a_2, \ldots, a_n$. Is it possible to arrange them on a circle so that each number is strictly greater than both its neighbors or strictly smaller than both its neighbors?

In other words, check if there exists a rearrangement $b_1, b_2, \ldots, b_n$ of the integers $a_1, a_2, \ldots, a_n$ such that for each $i$ from $1$ to $n$ at least one of the following conditions holds:

$b_{i-1} < b_i > b_{i+1}$

$b_{i-1} > b_i < b_{i+1}$

To make sense of the previous formulas for $i=1$ and $i=n$, one shall define $b_0=b_n$ and $b_{n+1}=b_1$.


-----Input-----

The first line of the input contains a single integer $t$ ($1 \le t \le 3\cdot 10^4$)  — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer $n$ ($3 \le n \le 10^5$)  — the number of integers.

The second line of each test case contains $n$ integers $a_1, a_2, \ldots, a_n$ ($0 \le a_i \le 10^9$).

The sum of $n$ over all test cases doesn't exceed $2\cdot 10^5$.


-----Output-----

For each test case, if it is not possible to arrange the numbers on the circle satisfying the conditions from the statement, output ${NO}$. You can output each letter in any case.

Otherwise, output ${YES}$. In the second line, output $n$ integers $b_1, b_2, \ldots, b_n$, which are a rearrangement of $a_1, a_2, \ldots, a_n$ and satisfy the conditions from the statement. If there are multiple valid ways to arrange the numbers, you can output any of them.


-----Examples-----

Input
4
3
1 1 2
4
1 9 8 4
4
2 0 2 2
6
1 1 1 11 111 1111
Output
NO
YES
1 8 4 9 
NO
YES
1 11 1 111 1 1111


-----Note-----

It can be shown that there are no valid arrangements for the first and the third test cases.

In the second test case, the arrangement $[1, 8, 4, 9]$ works. In this arrangement, $1$ and $4$ are both smaller than their neighbors, and $8, 9$ are larger.

In the fourth test case, the arrangement $[1, 11, 1, 111, 1, 1111]$ works. In this arrangement, the three elements equal to $1$ are smaller than their neighbors, while all other elements are larger than their neighbors.

Difficulty: EASY

Solutions:
n = int(input())
for i in range(n):
	x = int(input())
	l = list(map(int, input().split()))
	if x % 2 == 1:
		print('NO')
	else:
		l = sorted(l)
		m = (l[x // 2 - 1] + l[x // 2]) / 2
		if l.count(m) < x / 2:
			print('YES')
			for k in range(x // 2):
				print(str(l[k]) + ' ' + str(l[x // 2 + k]) + ' ', end='')
				if k == x // 2 - 1:
					print('')
		else:
			print('NO')


t = int(input())
for i in range(t):
	n = int(input())
	m = [int(x) for x in input().split()]
	m.sort()
	flag = False
	if n % 2 == 0:
		h = []
		for k in range(n // 2):
			h.append(m[k])
			h.append(m[n // 2 + k])
		for i in range(len(h) - 1):
			if h[i] == h[i + 1]:
				print('NO')
				flag = True
				break
		if not flag:
			print('YES')
			for j in range(len(h)):
				print(h[j], end=' ')
			print()
	else:
		print('NO')


for i in range(int(input())):
	a = int(input())
	b = sorted(list(map(int, input().split())))
	c = 0
	if a % 2 == 0:
		for j in range(a // 2):
			if b[j] < b[j + a // 2] and b[j + a // 2] > b[(j + 1) % (a // 2)]:
				c = 0
			else:
				c += 1
				break
	if c == 1 or a % 2 == 1:
		print('NO')
	else:
		print('YES')
		for j in range(a // 2):
			print(b[j], b[j + a // 2], end=' ')
		print()


def solve():
	n = int(input())
	arr = list(map(int, input().split(' ')))
	if n % 2 == 1:
		print('NO')
		return
	arr.sort()
	b = [0] * len(arr)
	j = 0
	for i in range(0, int(len(arr) / 2)):
		b[j] = arr[i]
		j += 2
	j = 1
	for i in range(int(len(arr) / 2), len(arr), 1):
		b[j] = arr[i]
		j += 2
	for i in range(1, len(arr) - 1):
		if b[i] >= b[i + 1] and b[i] <= b[i - 1]:
			print('NO')
			return
		if b[i] >= b[i - 1] and b[i] <= b[i + 1]:
			print('NO')
			return
	print('YES')
	for ele in b:
		print(ele, end=' ')
	print()
t = int(input())
for i in range(t):
	solve()


for _ in range(int(input())):
	(n, a, x, bad) = (int(input()), [int(x) for x in input().split()], [], False)
	if n % 2 == 0:
		a.sort()
		n = n // 2
		for i in range(n - 1):
			if not a[i + 1] == a[i + n]:
				x.append(a[i])
				x.append(a[i + n])
			else:
				bad = True
		i += 1
		if not a[i] == a[i + n]:
			x.append(a[i])
			x.append(a[i + n])
		if not bad:
			print('YES')
			for d in x:
				print(d, end=' ')
			print('')
		else:
			print('NO')
	else:
		print('NO')