A new entertainment has appeared in Buryatia — a mathematical circus! The magician shows two numbers to the audience — $n$ and $k$, where $n$ is even. Next, he takes all the integers from $1$ to $n$, and splits them all into pairs $(a, b)$ (each integer must be in exactly one pair) so that for each pair the integer $(a + k) \cdot b$ is divisible by $4$ (note that the order of the numbers in the pair matters), or reports that, unfortunately for viewers, such a split is impossible.

Burenka really likes such performances, so she asked her friend Tonya to be a magician, and also gave him the numbers $n$ and $k$.

Tonya is a wolf, and as you know, wolves do not perform in the circus, even in a mathematical one. Therefore, he asks you to help him. Let him know if a suitable splitting into pairs is possible, and if possible, then tell it.


-----Input-----

The first line contains one integer $t$ ($1 \leq t \leq 10^4$) — the number of test cases. The following is a description of the input data sets.

The single line of each test case contains two integers $n$ and $k$ ($2 \leq n \leq 2 \cdot 10^5$, $0 \leq k \leq 10^9$, $n$ is even) — the number of integers and the number being added $k$.

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10^5$.


-----Output-----

For each test case, first output the string "YES" if there is a split into pairs, and "NO" if there is none.

If there is a split, then in the following $\frac{n}{2}$ lines output pairs of the split, in each line print $2$ numbers — first the integer $a$, then the integer $b$.


-----Examples-----

Input
4
4 1
2 0
12 10
14 11
Output
YES
1 2
3 4
NO
YES
3 4
7 8
11 12
2 1
6 5
10 9
YES
1 2
3 4
5 6
7 8
9 10
11 12
13 14


-----Note-----

In the first test case, splitting into pairs $(1, 2)$ and $(3, 4)$ is suitable, same as splitting into $(1, 4)$ and $(3, 2)$.

In the second test case, $(1 + 0) \cdot 2 = 1 \cdot (2 + 0) = 2$ is not divisible by $4$, so there is no partition.

Difficulty: EASY

Solutions:
def generate(n, k):
	res = []
	if not k % 4:
		return ('NO', res)
	if k % 4 % 2:
		for i in range(1, n, 2):
			res.append(f'{i} {i + 1}')
	else:
		for i in range(1, n, 2):
			if not (i + 1) % 4:
				res.append(f'{i} {i + 1}')
		for i in range(1, n, 2):
			if (i + 1) % 4:
				res.append(f'{i + 1} {i}')
	return ('YES', res)
r = []
for i in range(int(input())):
	(n, k) = map(int, input().split())
	r.append(generate(n, k))
for (ans, list) in r:
	print(ans)
	if list != []:
		print(*list, sep='\n')


t = int(input())
possibility = []
for i in range(t):
	(n, k) = [int(j) for j in input().split()]
	if n % 2:
		possibility.append('NO')
	elif not n % 2 and k % 2:
		possibility.append('YES')
		for j in range(1, n + 1, 2):
			possibility.append(f'{j} {j + 1}')
	elif not n % 2 and k % 4:
		possibility.append('YES')
		for j in range(4, n + 1, 4):
			possibility.append(f'{j - 1} {j}')
		for j in range(2, n + 1, 4):
			possibility.append(f'{j} {j - 1}')
	else:
		possibility.append('NO')
for i in possibility:
	print(i)


import sys
from sys import stdin, stdout
from math import ceil, floor, sqrt, log, log2, log10
from collections import Counter
int_max = float('inf')
int_min = -float('inf')
mod = 10 ** 9 + 7
ANS = []
input = stdin.readline

def solve():
	pass
t = int(input())
for i in range(t):
	(n, k) = map(int, input().split())
	if k % 2 == 1:
		print('YES')
		for i in range(0, n, 2):
			print(i + 1, i + 2)
	elif k % 4 == 2:
		print('YES')
		for i in range(4, n + 1, 4):
			print(i - 1, i)
		for i in range(2, n + 1, 4):
			print(i, i - 1)
	else:
		print('NO')
		continue


import sys
input = sys.stdin.readline
t = int(input())
for i in range(t):
	(n, k) = map(int, input().split())
	if k % 2 == 1:
		print('YES')
		for i in range(1, n + 1, 2):
			print(i, i + 1)
	elif k % 4 == 2:
		print('YES')
		for i in range(1, n // 4 + 1):
			print(4 * i - 1, 4 * i)
		for i in range(1, (n + 2) // 4 + 1):
			print(4 * i - 2, 4 * i - 3)
	elif k % 4 == 0:
		print('NO')


for _ in range(int(input())):
	(n, k) = list(map(int, input().split()))
	if k % 4 == 1 or k % 4 == 3:
		print('YES')
		for i in range(1, n + 1, 2):
			print(str(i) + ' ' + str(i + 1))
	elif k % 4 == 2:
		print('YES')
		for i in range(3, n + 1, 4):
			print(str(i) + ' ' + str(i + 1))
		for i in range(1, n + 1, 4):
			print(str(i + 1) + ' ' + str(i))
	else:
		print('NO')


qt = int(input())
for i in range(qt):
	(n, k) = map(int, input().split(' '))
	if k % 2 == 1:
		print('YES')
		for i in range(n // 2):
			print(f'{2 * i + 1} {2 * i + 2}')
	elif k % 4 == 2:
		print('YES')
		for i in range(n // 2):
			if (2 * i + 2) % 4 == 0:
				print(f'{2 * i + 1} {2 * i + 2}')
		for i in range(n // 2):
			if (2 * i + 2) % 4 != 0:
				print(f'{2 * i + 2} {2 * i + 1}')
	else:
		print('NO')


t = int(input())
for i in range(t):
	(n, m) = input().split()
	m = int(m)
	n = int(n)
	if m % 2 == 1:
		print('YES')
		i = 1
		while i < n:
			print(str(i) + ' ' + str(i + 1))
			i += 2
	elif m % 4 == 2:
		print('YES')
		i = 1
		while 4 * i <= n:
			print(str(4 * i - 1) + ' ' + str(4 * i))
			i += 1
		j = 1
		while 2 * j <= n:
			print(str(2 * j) + ' ' + str(2 * j - 1))
			j += 2
	else:
		print('NO')


iter = int(input())
for z in range(iter):
	(n, k) = list(map(int, input().split(' ')))
	if k & 1:
		print('YES')
		for i in range(1, n + 1, 2):
			print(str(i) + ' ' + str(i + 1))
	elif k % 4 == 0:
		print('NO')
	else:
		print('YES')
		for i in range(3, n + 1, 4):
			print(str(i) + ' ' + str(i + 1))
		for i in range(1, n + 1, 4):
			print(str(i + 1) + ' ' + str(i))


t = int(input())

def mainfunc(n, k):
	if k % 2 == 1:
		print('YES')
		for i in range(1, n, 2):
			print(i, i + 1)
	elif k % 4 == 0:
		print('NO')
	else:
		print('YES')
		for i in range(4, n + 1, 4):
			print(i - 1, i)
		for i in range(2, n + 1, 4):
			print(i, i - 1)
for j in range(t):
	a = input().split()
	n = int(a[0])
	k = int(a[1])
	mainfunc(n, k)


t = int(input())
for i in range(t):
	(n, k) = [int(x) for x in input().split()]
	if k % 2 != 0:
		print('YES')
		for j in range(2, n + 1, 2):
			print(j - 1, j)
	elif k % 4 == 0:
		print('NO')
	else:
		print('YES')
		for b in range(4, n + 1, 4):
			print(b - 1, b)
		for a in range(2, n + 1, 4):
			print(a, a - 1)


for _ in range(int(input())):
	(n, k) = map(int, input().split())
	if k % 2 == 1:
		print('YES')
		for i in range(1, n, 2):
			print(i, i + 1)
	elif (k + 2) % 4 != 0:
		print('NO')
		continue
	else:
		print('YES')
		ct = 4
		while ct <= n:
			print(ct - 1, ct)
			ct += 4
		for i in range(2, n + 1, 4):
			if i % 4 != 0:
				print(i, i - 1)