The snakes want to build a temple for Lord Cobra. There are multiple strips of land that they are looking at, but not all of them are suitable. They need the strip of land to resemble a coiled Cobra. You need to find out which strips do so.
Formally, every strip of land, has a length. Suppose the length of the i-th strip is is Ni, then there will be Ni integers, Hi1, Hi2, .. HiNi, which represent the heights of the ground at various parts of the strip, in sequential order. That is, the strip has been divided into Ni parts and the height of each part is given. This strip is valid, if and only if all these conditions are satisfied:
- There should be an unique 'centre' part. This is where the actual temple will be built. By centre, we mean that there should be an equal number of parts to the left of this part, and to the right of this part.
- Hi1 = 1
- The heights keep increasing by exactly 1, as you move from the leftmost part, to the centre part.
- The heights should keep decreasing by exactly 1, as you move from the centre part to the rightmost part. Note that this means that HiNi should also be 1.
Your job is to look at every strip and find if it's valid or not.

-----Input-----
- The first line contains a single integer, S, which is the number of strips you need to look at. The description of each of the S strips follows
- The first line of the i-th strip's description will contain a single integer: Ni, which is the length and number of parts into which it has been divided.
- The next line contains Ni integers: Hi1, Hi2, .., HiNi. These represent the heights of the various parts in the i-th strip.

-----Output-----
- For each strip, in a new line, output "yes" if is a valid strip, and "no", if it isn't.

-----Constraints-----
- 1 ≤ S ≤ 100 
- 3 ≤ Ni ≤ 100 
- 1 ≤ Hij ≤ 100 

-----Example-----
Input:
7
5
1 2 3 2 1
7
2 3 4 5 4 3 2
5
1 2 3 4 3
5
1 3 5 3 1
7
1 2 3 4 3 2 1
4
1 2 3 2
4
1 2 2 1

Output:
yes
no
no
no
yes
no
no

-----Explanation-----
In the first strip, all the conditions are satisfied, hence it is valid.
In the second strip, it does not start with a 1, and hence is invalid.
In the third strip, it keeps increasing even past the centre, instead of decreasing. Hence invalid.
The fourth strip does not increase and decrease by exactly 1. Hence invalid.
The fifth satisfies all conditions and hence is valid.
The sixth and seventh strip do not have a 'centre' part. Because for every part, there are either more parts to its right than its left, or more parts on its left than its right. Hence both the strips are invalid.

Difficulty: UNKNOWN_DIFFICULTY

Solutions:
for i in range(int(input())):
	N = int(input())
	L = list(map(int, input().split()))
	(l, h) = (0, N - 1)
	flag = 1
	if L[l] != 1 and L[h] != 1:
		flag = 0
	else:
		while l < h:
			if L[l] != L[h] or (L[l + 1] - L[l] != 1 and L[h - 1] - L[h] != 1):
				flag = 0
				break
			l += 1
			h -= 1
	if flag:
		print('yes')
	else:
		print('no')


try:
	for i in range(int(input())):
		n = int(input())
		l = list(map(int, input().strip().split()))
		if len(l) % 2 == 0:
			print('no')
		elif l[0] != 1:
			print('no')
		else:
			for i in range(n // 2):
				if l[i] != l[n - i - 1]:
					print('no')
					break
				elif l[i] - l[i + 1] != -1:
					print('no')
					break
			else:
				print('yes')
except:
	pass


try:
	for z in range(int(input())):
		n = int(input())
		H = [int(e) for e in input().split()]
		if n % 2 == 0:
			print('no')
		elif H[0] != 1:
			print('no')
		else:
			f = 0
			for i in range(n // 2):
				if H[i] != H[n - i - 1]:
					f = 1
					break
			if f == 0:
				for i in range(n // 2):
					if H[i] - H[i + 1] != -1:
						f = 1
						break
			if f == 1:
				print('no')
			else:
				print('yes')
except:
	pass


for i in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if n % 2 == 0:
		print('no')
	elif l[0] != 1 or l[-1] != 1:
		print('no')
	else:
		l1 = list(range(1, n // 2 + 2))
		l2 = list(range(n // 2, 0, -1))
		if l[0:n // 2 + 1] == l1 and l[n // 2 + 1:] == l2:
			print('yes')
		else:
			print('no')


def check_strip(num, strip):
	if num % 2 == 0:
		return False
	elif strip[0] != 1:
		return False
	elif sum(strip) != (num // 2 + 1) ** 2:
		return False
	else:
		return True
try:
	for i in range(int(input())):
		num = int(input())
		strip = list(map(int, input().split()))
		if check_strip(num, strip):
			print('yes')
		else:
			print('no')
except Exception as e:
	print(e)


for _ in range(int(input())):
	n = int(input())
	x = list(map(int, input().split()))
	if n % 2 == 0:
		print('no')
	else:
		t = 1
		flag = 0
		for i in range(0, n // 2 + 1):
			if x[i] == x[n - i - 1] == t:
				t = t + 1
			else:
				flag = 1
				break
		if flag == 0:
			print('yes')
		else:
			print('no')


t = int(input())
for i in range(t):
	n = int(input())
	a = list(map(int, input().split()))
	valid = False
	if n % 2 == 1 and a[0] == 1:
		for j in range(int((n - 1) / 2)):
			if a[j] == a[n - 1 - j]:
				valid = True
			if a[j] + 1 != a[j + 1]:
				valid = False
			if a[n - 1 - j] != a[n - 2 - j] - 1:
				valid = False
	if valid:
		print('yes')
	else:
		print('no')


t = int(input())
for z in range(t):
	n = int(input())
	a = [int(x) for x in input().split()]
	if n % 2 == 1 and a[0] == 1:
		x = list(reversed(a))
		for i in range((len(a) - 1) // 2):
			if a[i] + 1 == x[i + 1]:
				c = 0
			else:
				c = 1
				break
		if c == 1:
			print('no')
		else:
			print('yes')
	else:
		print('no')


for _ in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	if n % 2 == 1 and a[0] == 1:
		arr1 = list(reversed(a))
		for i in range((len(a) - 1) // 2):
			if a[i] + 1 == arr1[i + 1]:
				f = 0
			else:
				f = 1
				print('no')
				break
		if f == 0:
			print('yes')
	else:
		print('no')


test_cases = int(input())

def canMakeTemple(strips, strips_height):
	check = 'yes'
	if strips % 2 != 0 and strips_height[strips // 2] == strips // 2 + 1:
		(left, right) = (0, strips - 1)
		for i in range(strips // 2):
			if strips_height[i] != strips_height[strips - i - 1]:
				check = 'no'
				break
	else:
		check = 'no'
	return check
for i in range(test_cases):
	strips = int(input())
	strips_height = list(map(int, input().split()))
	print(canMakeTemple(strips, strips_height))


for _ in range(int(input())):
	num = int(input())
	arr = list(map(int, input().split()))
	if num % 2 == 1 and arr[0] == 1:
		arr1 = list(reversed(arr))
		for i in range((len(arr) - 1) // 2):
			if arr[i] + 1 == arr1[i + 1]:
				flag = 0
			else:
				flag = 1
				print('no')
				break
		if flag == 0:
			print('yes')
	else:
		print('no')


for i in range(int(input())):
	n = int(input())
	m = list(map(int, input().split()))
	if m[0] == 1 and m[-1] == 1 and (n % 2 != 0) and (m[n // 2] == max(m)):
		for i in range(n // 2):
			if abs(m[i + 1] - m[i]) != 1:
				print('no')
				break
		else:
			print('yes')
	else:
		print('no')


for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	f = True
	for i in range((n + 1) // 2):
		if l[i] != i + 1:
			f = False
		if l[n - i - 1] != i + 1:
			f = False
	if n % 2 == 0:
		f = False
	if f == True:
		print('yes')
	else:
		print('no')


num = [x for x in range(1, 101)]
for _ in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	if n % 2 != 0:
		c = n // 2
		if l[0] == 1 and l[-1] == 1:
			d = 0
			for i in range(1, c + 1):
				if l[i] - l[i - 1] == 1:
					d = d + 1
			for i in range(c, n - 1):
				if l[i] - l[i + 1] == 1:
					d = d + 1
			if d == n - 1:
				print('yes')
			else:
				print('no')
		else:
			print('no')
	else:
		print('no')


s = int(input())
for i in range(s):
	n = int(input())
	h = list(map(int, input().split()))
	d = 0
	if n % 2 != 0:
		c = n // 2
		if h[0] == 1:
			for i in range(1, c + 1):
				if h[i] - h[i - 1] == 1:
					d = d + 1
			for i in range(c, len(h) - 1):
				if h[i] - h[i + 1] == 1:
					d = d + 1
			if d == n - 1:
				print('yes')
			else:
				print('no')
		else:
			print('no')
	else:
		print('no')


T = int(input())
for i in range(T):
	N = int(input())
	H = list(map(int, input().split()))[:N]
	if N % 2 != 0 and H[0] == 1 and (H[N // 2] == max(H)) and (H[-1] == 1):
		for j in range(len(H) - 1):
			if abs(H[j + 1] - H[j]) != 1:
				print('no')
				break
		else:
			print('yes')
	else:
		print('no')