"Don't Drink and Drive, but when you do, Better Call Saul."
Once Jesse and Walter were fighting over extra cash, and Saul decided to settle it with a game of stone piles whose winner gets the extra money. The game is described as follows :
There are N$N$ piles of stones with A$A$1$1$,$,$ A$A$2$2$,$,$ ...$...$ A$A$N$N$ stones in each pile. 
Jesse and Walter move alternately, and in one move, they remove one pile entirely. 
After a total of X$X$ moves, if the Sum of all the remaining piles is odd, Walter wins the game and gets the extra cash, else Jesse is the winner.
Walter moves first. 
Determine the winner of the game if both of them play optimally. 

-----Input:-----
- The first line will contain T$T$, number of testcases. T$T$ testcases follow : 
- The first line of each testcase contains two space-separated integers N,X$N, X$. 
- The second line of each testcase contains N$N$ space-separated integers A$A$1$1$,$,$ A$A$2$2$,$,$ ...,$...,$A$A$N$N$.

-----Output:-----
For each test case, print a single line containing the string "Jesse" (without quotes), if Jesse wins the game or "Walter" (without quotes) if Walter wins.

-----Constraints-----
- 1≤T≤104$1 \leq T \leq 10^4$
- 2≤N≤105$2 \leq N \leq 10^5$
- 1≤X≤N−1$1 \leq X \leq N-1$
- 1≤A$1 \leq A$i$i$ ≤100$ \leq 100$
- The sum of N$N$ over all test cases does not exceed 106$10^6$

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

-----Sample Output:-----
Jesse
Walter

-----EXPLANATION:-----
- 
For Test Case 1 : Playing optimally, Walter removes 4. Jesse removes 3 and then Walter removes 4. Jesse wins as 4+4=8$4 + 4 = 8$ is even.
- 
For Test Case 2 : Playing optimally, Walter removes 4, Jesse removes 3, Walter removes 2 and Jesse removes 1. Walter wins as  3+3+1=7$3 + 3 + 1 = 7$ is odd.

Difficulty: VERY_HARD
Tags: Game theory

Starter code:

Solutions:
for _ in range(int(input())):
	(n, x) = map(int, input().split())
	a = list(map(int, input().split()))
	ne = 0
	no = 0
	for i in a:
		if i % 2 == 0:
			ne += 1
		else:
			no += 1
	if no <= x // 2:
		v = 1
	elif ne <= x // 2:
		v = (n - x + 1) % 2
	else:
		v = (x + 1) % 2
	if v == 0:
		print('Walter')
	else:
		print('Jesse')


T = int(input())
for _ in range(T):
	(n, x) = map(int, input().split())
	A = list(map(int, input().split()))
	ne = 0
	no = 0
	for i in A:
		if i % 2 == 0:
			ne = ne + 1
		else:
			no = no + 1
	flag = 0
	if no <= x // 2:
		flag = 1
	elif ne <= x // 2:
		flag = (n - x + 1) % 2
	else:
		flag = (x + 1) % 2
	if flag == 1:
		print('Jesse')
	else:
		print('Walter')


t = int(input())
for _ in range(t):
	(n, x) = [int(j) for j in input().split()]
	numbers = [int(j) for j in input().split()]
	odds = sum([j % 2 for j in numbers])
	if x % 2 == 1:
		if x // 2 >= odds or (n % 2 == 1 and x // 2 >= n - odds):
			print('Jesse')
		else:
			print('Walter')
	elif x // 2 >= n - odds and n % 2 == 1:
		print('Walter')
	else:
		print('Jesse')


import sys
import math
from collections import defaultdict, Counter
input = sys.stdin.readline

def print(x):
	sys.stdout.write(str(x) + '\n')
mod = pow(10, 9) + 7
t = int(input())
for i in range(t):
	(n, x) = map(int, input().split())
	a = list(map(int, input().split()))
	odd = 0
	for j in a:
		if j & 1:
			odd += 1
	eve = n - odd
	if x // 2 >= odd:
		print('Jesse')
	elif n - x // 2 <= eve:
		print('Walter')
	elif (n - x) % 2 == 0:
		print('Jesse')
	else:
		print('Walter')


t = int(input())
for _ in range(t):
	(n, x) = map(int, input().split())
	a = list(map(int, input().split()))
	e = 0
	o = 0
	for i in a:
		if i % 2 == 0:
			e = e + 1
		else:
			o = o + 1
	if e <= x // 2:
		flag = (n - x + 1) % 2
	elif o <= x // 2:
		flag = 1
	else:
		flag = (x + 1) % 2
	if flag == 1:
		print('Jesse')
	else:
		print('Walter')


for _ in range(int(input())):
	(n, x) = map(int, input().split())
	a = list(map(int, input().split()))
	val = 0
	for i in a:
		if i % 2:
			val += 1
	if x // 2 >= val:
		print('Jesse')
	elif x // 2 >= n - val:
		if (n - x) % 2:
			print('Walter')
		else:
			print('Jesse')
	elif x % 2:
		print('Walter')
	else:
		print('Jesse')


n = int(input())
for i in range(n):
	(k, x) = map(int, input().split())
	l = list(map(int, input().split()))
	(f, e, o) = (0, 0, 0)
	for i in l:
		if i % 2 == 0:
			e += 1
		else:
			o += 1
	if o <= x // 2:
		f = 1
	elif e <= x // 2:
		if (k - x) % 2 != 0:
			f = 0
		else:
			f = 1
	elif x % 2 == 0:
		f = 1
	else:
		f = 0
	if f == 1:
		print('Jesse')
	else:
		print('Walter')


for _ in range(int(input())):
	(n, x) = map(int, input().split())
	piles = list(map(int, input().split()))
	(even_cnt, odd_cnt) = (0, 0)
	for i in piles:
		if i % 2:
			odd_cnt += 1
		else:
			even_cnt += 1
	if len(piles) <= x:
		print('Jesse')
	elif x % 2 == 1:
		print('Jesse') if odd_cnt <= x // 2 else print('Walter')
	else:
		print('Walter') if even_cnt <= x // 2 and len(piles) % 2 else print('Jesse')


def winner_is(x: int, n: int, stones: [int]) -> str:
	odd_piles = sum([j % 2 for j in stones])
	if x % 2 == 1:
		if x // 2 >= odd_piles or (n % 2 == 1 and x // 2 >= n - odd_piles):
			return 'Jesse'
		return 'Walter'
	elif x // 2 >= n - odd_piles and n % 2 == 1:
		return 'Walter'
	return 'Jesse'

def driver():
	pile = []
	for i in range(int(input())):
		(n, x) = map(int, input().split())
		stones = list(map(int, input().split()))
		pile.append(winner_is(x, n, stones))
	print(*pile, sep='\n')
driver()


t = int(input())
for _ in range(t):
	(n, x) = map(int, input().split())
	j = x >> 1
	w = x - j
	array = list(map(int, input().split()))
	pari = 0
	dispari = 0
	for el in array:
		if el % 2 == 0:
			pari += 1
		else:
			dispari += 1
	if dispari <= j:
		print('Jesse')
		continue
	if pari <= j and (n - x) % 2 == 0:
		print('Jesse')
		continue
	if pari <= w and (n - x) % 2 == 1:
		print('Walter')
		continue
	if w > j:
		print('Walter')
	else:
		print('Jesse')