from math import factorial

def test():

modVal = (10 ** 9) + 7

N, K = [int(i) for i in input().split()]

A = [int(i) for i in input().split()]

```
if N == 1:
print(1)
return
evenCount = 0
oddCount = 0
for Ai in A:
if Ai % 2 == 0: evenCount += 1
else: oddCount += 1
if K == 0:
if evenCount == 0 or oddCount == 0:
print(factorial(N))
else:
print(0)
elif N % 2 == 0:
if evenCount == oddCount:
f = factorial(N//2)
print((2 * f * f) % modVal)
else:
print(0)
else:
if abs(evenCount - oddCount) == 1:
f = factorial(N//2)
print((f * f * ((N//2) + 1)) % modVal)
else:
print(0)
```

for _ in range(int(input())):

test()

The above code has the exact same logic as several other solutions I found. But for some reason it is failing the testcasesâ€¦ I canâ€™t find a testcase where it is not right. Can anyone see any bugs in the code ?