You are given an array A of size N. You are also given an integer Q. Can you figure out the answer to each of the Q queries?

Each query contains 2 integers x and y, and you need to find whether the value find(x,y) is Odd or Even:

find(int x,int y)
{
    if(x>y) return 1;
    ans = pow(A[x],find(x+1,y))
    return ans
}

Note : pow(a,b) = a^{b}.

Input Format 

The first line of the input contains an integer N. 
The next line contains N space separated non-negative integers(whole numbers less than or equal to 9). 

The line after that contains a positive integer, Q , the denotes the number of queries to follow.
Q lines follow, each line contains two positive integer x and y separated by a single space.   

Output Format 

For each query, display 'Even' if the value returned is Even, otherwise display 'Odd'.

Constraints 

2 ≤ N ≤ 10^{5} 

2 ≤ Q ≤ 10^{5} 

1 ≤ x,y ≤ N 

x ≤ y

Array is 1-indexed.  

No 2 consecutive entries in the array will be zero.

Sample Input 

3
3 2 7
2
1 2
2 3

Sample Output 

Odd
Even

Explanation

find(1,2) = 9, which is Odd 

find(2,3) = 128, which is even

Difficulty: MEDIUM_HARD
Tags: Mathematics

Starter code:

Solutions:
n = int(input())
a = list(map(int, input().split()))
q = int(input())

def solve(x, y):
	if a[x] % 2 == 1:
		return 'Odd'
	if a[x] == 0:
		return 'Even'
	if y > x and a[x + 1] == 0:
		return 'Odd'
	return 'Even'
for _ in range(q):
	(x, y) = map(lambda s: int(s) - 1, input().split())
	print(solve(x, y))


N = int(input())
A = [int(x) for x in input().split()]
for test_case in range(int(input())):
	(x, y) = (int(z) - 1 for z in input().split())
	even = True
	if x > y or A[x] % 2 == 1:
		even = False
	if x < N - 1 and x < y and (A[x + 1] == 0):
		even = False
	if even:
		print('Even')
	else:
		print('Odd')


N = int(input())
A = list(map(int, input().split()))
Q = int(input())
for q in range(Q):
	(x, y) = map(int, input().split())
	if A[x - 1] % 2 == 0 and (x == y or A[x] != 0):
		print('Even')
	else:
		print('Odd')


N = input()
A = [int(x) for x in input().split()]
Q = int(input())
for q in range(Q):
	(x, y) = map(int, input().split())
	if A[x - 1] % 2 or (x + 1 <= y and A[x] == 0):
		print('Odd')
	else:
		print('Even')


import sys

def find(x, y):
	if x > y:
		return 1
	ans = A[x] ** find(x + 1, y)
	return ans

def CheckStupid(x, y):
	if find(x, y) % 2 == 0:
		print('Even')
	else:
		print('Odd')

def CheckLessStupid(x, y):
	if x == y:
		if A[x] % 2 == 1:
			print('Odd')
		else:
			print('Even')
	elif x > y or A[x] % 2 == 1:
		print('Odd')
	elif A[x + 1] == 0:
		print('Odd')
	else:
		print('Even')
inp = sys.stdin.read().split(sep='\n')
N = int(inp.pop(0))
A = inp.pop(0).split()
for i in range(N):
	A[i] = int(A[i])
Q = int(inp.pop(0))
for i in range(Q):
	(x, y) = inp.pop(0).split()
	x = int(x)
	y = int(y)
	CheckLessStupid(x - 1, y - 1)


from sys import stdin as cin
n = int(cin.readline())
a = list(map(int, cin.readline().split()))
for t in range(int(cin.readline())):
	(x, y) = map(int, cin.readline().split())
	if x == n:
		if a[x - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
	elif a[x - 1] % 2 == 0:
		if x > y - 1:
			print('Even')
		elif a[x] != 0:
			print('Even')
		else:
			print('Odd')
	else:
		print('Odd')


n = int(input())
arr = list(map(int, input().split()))
q = int(input())
for qNr in range(q):
	(x, y) = list(map(int, input().split()))
	x -= 1
	y -= 1
	if x > y or arr[x] % 2 != 0:
		print('Odd')
	elif x + 1 > y:
		print('Even')
	elif arr[x + 1] == 0:
		print('Odd')
	else:
		print('Even')


n = int(input())
numbers = [int(x) for x in input().split()]
Q = int(input())
for _ in range(Q):
	stri = input().split()
	(x, y) = (int(stri[0]) - 1, int(stri[1]) - 1)
	if numbers[x] % 2 == 0:
		odd = False
	else:
		odd = True
	if x > y:
		print('Odd')
	elif x == y:
		if odd:
			print('Odd')
		else:
			print('Even')
	elif numbers[x] == 0:
		print('Even')
	elif numbers[x + 1] == 0:
		print('Odd')
	elif odd:
		print('Odd')
	else:
		print('Even')


max = int(input())
vallist = list(map(int, input().split()))
runs = int(input())
for i in range(0, runs):
	querylist = list(map(int, input().split()))
	if querylist[0] > querylist[1]:
		print('Odd')
	elif querylist[0] == querylist[1]:
		if vallist[querylist[0] - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
	elif querylist[1] <= max:
		if vallist[querylist[0]] == 0:
			print('Odd')
		elif vallist[querylist[0] - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
	elif vallist[querylist[0] - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


n = int(input())
array = list(map(int, input().split()))

def find(x, y):
	if x > y:
		return 1
	if x == y:
		return array[x]
	(a, b) = (array[x], array[x + 1])
	if b == 0:
		return 1
	else:
		return a
q = int(input())
for _ in range(q):
	(a, b) = map(int, input().split())
	v = find(a - 1, b - 1)
	if v % 2 == 0:
		print('Even')
	else:
		print('Odd')


def find(a, x, y):
	if x >= y:
		return 1
	if a[x] == 0:
		return 0
	next = find(a, x + 1, y)
	if next == 0:
		return 1
	return a[x] % 2 + 2

def even_find(a, x, y):
	return find(a, x, y) % 2 == 0
n = int(input())
a = [int(x) for x in str(input()).split()]
q = int(input())
for _ in range(q):
	even = None
	(x, y) = [int(x) for x in str(input()).split()]
	x -= 1
	print('Even' if even_find(a, x, y) else 'Odd')


import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
Q = int(sys.stdin.readline())
for _ in range(Q):
	(x, y) = list(map(int, sys.stdin.readline().split()))
	if x >= y or A[x] > 0:
		print('Even' if A[x - 1] % 2 == 0 else 'Odd')
	else:
		print('Odd')


def find(x, y):
	v = 1
	while y >= x:
		y -= 1
		v = pow(A[y], v)
	return v
N = int(input())
A = [int(_) for _ in input().split()]
Q = int(input())
for _ in range(Q):
	(x, y) = [int(_) for _ in input().split()]
	if y > x and A[x] == 0:
		print('Odd')
	elif A[x - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


n = int(input())
l = list(map(int, input().split()))
q = int(input())
for i in range(q):
	(a, b) = map(int, input().split())
	temp = l[a - 1] % 2
	if a == n:
		if temp == 0:
			print('Even')
		else:
			print('Odd')
	elif l[a] == 0:
		if temp == 0 and a == b:
			print('Even')
		else:
			print('Odd')
	elif temp == 0:
		print('Even')
	elif temp == 1:
		print('Odd')


N = int(input())
A = [int(_) for _ in input().split()]
Q = int(input())
for _ in range(Q):
	(x, y) = (int(_) for _ in input().split())
	if A[x - 1] % 2 == 0 and (y == x or A[x] != 0):
		print('Even')
	else:
		print('Odd')


n = int(input())
a = list(map(int, input().split()))
q = int(input())
for i in range(q):
	(x, y) = [int(i) for i in input().split()]
	if a[x - 1] % 2 == 0 and (x == y or a[x] != 0):
		print('Even')
	else:
		print('Odd')


input()
numbers = [int(x) for x in input().strip().split()]
q = int(input())

def is_odd(x, y):
	if x > y:
		return True
	elif numbers[x - 1] % 2 == 1:
		return True
	elif x + 1 > y:
		return False
	elif numbers[x] == 0:
		return True
	else:
		return False
for _ in range(q):
	(x, y) = map(int, input().strip().split())
	if is_odd(x, y):
		print('Odd')
	else:
		print('Even')


import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
Q = int(sys.stdin.readline())
for _ in range(Q):
	(x, y) = list(map(int, sys.stdin.readline().split()))
	if x == y or A[x] > 0:
		print('Even' if A[x - 1] % 2 == 0 else 'Odd')
	else:
		print('Odd')


n = int(input())
N = list(map(int, input().split()))
q = int(input())
S = ['Even', 'Odd']
while q > 0:
	q -= 1
	(x, y) = map(int, input().split())
	x -= 1
	y -= 1
	if y == x:
		print(S[N[x] % 2])
	elif N[x + 1] == 0:
		print(S[1])
	else:
		print(S[N[x] % 2])


import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
Q = int(sys.stdin.readline())
for _ in range(Q):
	(x, y) = list(map(int, sys.stdin.readline().split()))
	if x == y or A[x] > 0:
		print('Even' if A[x - 1] % 2 == 0 else 'Odd')
	else:
		print('Odd')


n = int(input())
arr = list(map(int, input().split()))
arr.insert(0, 0)
q = int(input())
for i in range(q):
	(x, y) = input().split()
	(x, y) = (int(x), int(y))
	if x > y:
		print('Odd')
	if x == y:
		if arr[x] & 1 == 0:
			print('Even')
		else:
			print('Odd')
	if x < y:
		if arr[x] & 1 == 0 and arr[x + 1] != 0:
			print('Even')
		else:
			print('Odd')


import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
Q = int(sys.stdin.readline())
for _ in range(Q):
	(x, y) = list(map(int, sys.stdin.readline().split()))
	if x == y or A[x] > 0:
		print('Even' if A[x - 1] % 2 == 0 else 'Odd')
	else:
		print('Odd')


n = int(input())
lis = list(map(int, input().split()))
t = int(input())
for _ in range(t):
	(x, y) = list(map(int, input().split()))
	print('Even' if lis[x - 1] % 2 == 0 and (x == y or lis[x] != 0) else 'Odd')


from fileinput import input
import math

def find():
	lines = input()
	n = [int(x) for x in lines[0].strip().split()][0]
	nums = [int(x) for x in lines[1].strip().split()]
	noc = [int(x) for x in lines[2].strip().split()][0]
	for i in range(3, noc + 3):
		(x, y) = [int(x) for x in lines[i].strip().split()]
		if nums[x - 1] & 1 == 0:
			if x + 1 > y:
				print('Even', end='\n')
			elif nums[x] == 0:
				print('Odd', end='\n')
			else:
				print('Even', end='\n')
		else:
			print('Odd', end='\n')
find()


MODULO = 1000000007
t = int(input())
arr = list(map(int, input().split()))
arr.append(1)
q = int(input())
for i in range(q):
	(x, y) = map(int, input().split())
	if x > y:
		print('Odd')
	elif x == y:
		print('Even' if arr[x - 1] % 2 == 0 else 'Odd')
	elif arr[x - 1] % 2 == 0:
		if arr[x] != 0:
			print('Even')
		else:
			print('Odd')
	else:
		print('Odd')


def process(A, b, c):
	if b > c - 1:
		print('Odd')
		return
	if A[b] == 0 and b == c - 1:
		print('Even')
		return
	if A[b] == 0 and A[b + 1] == 0:
		print('Odd')
		return
	if A[b] == 0 and A[b + 1] > 0:
		print('Even')
		return
	if A[b] % 2:
		print('Odd')
		return
	if A[b] % 2 == 0 and b == c - 1:
		print('Even')
		return
	if A[b] % 2 == 0 and A[b + 1] == 0:
		print('Odd')
		return
	print('Even')
t = int(input())
A = [int(i) for i in input().split()]
q = int(input())
for _ in range(q):
	b = [int(i) for i in input().split()]
	process(A, b[0] - 1, b[1])


n = int(input())
arr = [int(x) for x in input().split()]
q = int(input())
for i in range(0, q):
	xy = [int(x) - 1 for x in input().split()]
	if xy[0] > xy[1]:
		print('Odd')
	elif arr[xy[0]] % 2 == 1:
		print('Odd')
	elif xy[0] < len(arr) - 1 and arr[xy[0] + 1] == 0 and (xy[0] + 1 <= xy[1]):
		print('Odd')
	else:
		print('Even')


def line_to_ints(line):
	numbers_str = line.split()
	numbers = [int(number) for number in numbers_str]
	assert all((n >= 0 for n in numbers))
	return numbers

def query(line):
	(x, y) = line.split()
	(x, y) = (int(x), int(y))
	assert x > 0
	assert y > 0
	return (x, y)

def is_even(x, y, array):
	assert x > 0
	assert y > 0
	if x > y:
		return False
	elif x < y:
		if array[x] == 0:
			return False
		else:
			return array[x - 1] % 2 == 0
	else:
		return array[x - 1] % 2 == 0

def main():
	size_array = int(input())
	assert size_array >= 0
	array = line_to_ints(input())
	assert len(array) == size_array
	nb_queries = int(input())
	assert nb_queries > 0
	queries = [query(input()) for _ in range(nb_queries)]
	for (x, y) in queries:
		if is_even(x, y, array):
			print('Even')
		else:
			print('Odd')
main()


N = int(input())
A = list(map(int, input().split()))
Q = int(input())

def query(x, y):
	if x > y:
		return 1
	if x + 1 <= y and A[x] == 0:
		return 1
	return A[x - 1] % 2
for q in range(Q):
	(x, y) = map(int, input().split())
	if query(x, y):
		print('Odd')
	else:
		print('Even')


n = int(input())
A = list(map(int, input().split()))
q = int(input())
while q:
	q = q - 1
	(x, y) = input().split()
	(x, y) = (int(x), int(y))
	if A[x - 1] % 2:
		print('Odd')
	elif x == y:
		print('Even')
	elif A[x] == 0:
		print('Odd')
	else:
		print('Even')


input()
strnum = input().split(' ')
num = [int(x) for x in strnum]
t = int(input())
for i in range(t):
	(m, n) = (int(x) for x in input().split(' '))
	if num[m - 1] % 2 == 0:
		if m < len(num) and m != n and (num[m] == 0):
			print('Odd')
		else:
			print('Even')
	else:
		print('Odd')


N = int(input())
A = [int(a) for a in input().split()]
Q = int(input())
queries = []
for i in range(Q):
	queries.append(tuple((int(x) for x in input().split())))

def solve(x, y):
	if x < y and A[x] == 0:
		return 1
	return A[x - 1]
for (x, y) in queries:
	print('Even' if solve(x, y) % 2 == 0 else 'Odd')


N = int(input())
A = [int(x) for x in input().split()]
Q = int(input())
for q in range(0, Q):
	(x, y) = [int(x) for x in input().split()]
	if A[x - 1] % 2 == 1:
		print('Odd')
	elif x < y:
		if A[x] == 0:
			print('Odd')
		else:
			print('Even')
	else:
		print('Even')


A = []
N = int(input())
A = list(map(int, input().split()))
Q = int(input())
for i in range(Q):
	(x, y) = map(int, input().split())
	if x == y:
		if A[x - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
	elif A[x - 1] % 2 == 0 and A[x] != 0:
		print('Even')
	else:
		print('Odd')


length = int(input())
array = list(map(int, input().split()))
for _ in range(int(input())):
	(x, y) = map(int, input().split())
	if array[x - 1] % 2 == 0 and (x == y or array[x] != 0):
		print('Even')
	else:
		print('Odd')


NN = int(input())
N = [int(ns) for ns in str(input()).split()]
for _ in range(int(input())):
	(x, y) = [int(ns) for ns in str(input()).split()]
	if x > y:
		print('Odd')
	elif y > x and N[x] == 0:
		print('Odd')
	elif N[x - 1] % 2:
		print('Odd')
	else:
		print('Even')


N = int(input())
A = list(map(int, input().split()))
Q = int(input())
for i in range(Q):
	(x, y) = map(int, input().split())
	if x > y or A[x - 1] % 2 == 1 or (x != y and A[x] == 0):
		print('Odd')
	else:
		print('Even')


N = int(input())
A = list(map(int, input().strip().split()))
Q = int(input())
for tmp in range(Q):
	[x, y] = list(map(int, input().strip().split()))
	if A[x - 1] & 1 != 0:
		print('Odd')
		continue
	if x != N and A[x] == 0 and (x != y):
		print('Odd')
	else:
		print('Even')


A = []
A.append(0)

def odd(x):
	if x % 2 == 0:
		return False
	return True

def findType(x, y):
	if x > y:
		return 'Odd'
	if odd(A[x]):
		return 'Odd'
	if x == y:
		return 'Even'
	if A[x + 1] == 0:
		return 'Odd'
	return 'Even'

def main():
	input()
	ar = input().split()
	for x in ar:
		A.append(int(x))
	n = int(input())
	for i in range(n):
		ar = input().split()
		x = int(ar[0])
		y = int(ar[1])
		print(findType(x, y))
main()


n = int(input())
numbers = [int(number) for number in input().split()]
q = int(input())
for _ in range(q):
	(x, y) = map(int, input().split())
	zeros = 0
	for i in range(x, y):
		if numbers[i] != 0:
			break
		zeros += 1
	if zeros % 2 == 1:
		print('Odd')
		continue
	if numbers[x - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


def find_parity(x, y):
	if x > y:
		return 'Odd'
	if x < y and x < n and (a[x] == 0):
		return 'Odd'
	return 'Odd' if a[x - 1] & 1 else 'Even'
n = int(input())
a = list(map(int, input().split()))
n_queries = int(input())
for q in range(n_queries):
	(x, y) = map(int, input().split())
	print(find_parity(x, y))


n = int(input())
A = [int(i) for i in input().strip().split()]
for _ in range(int(input())):
	(x, y) = [int(i) for i in input().strip().split()]
	if A[x - 1] & 1:
		print('Odd')
	elif x == y:
		print('Even')
	elif x + 1 < n and A[x] == 0 and (x + 1 >= n or A[x + 1] != 0):
		print('Odd')
	else:
		print('Even')


n = input()
A = list(map(int, input().split()))

def find(x, y):
	if x > y:
		return 1
	if y != 0:
		ans = A[x - 1]
	else:
		ans = 1
	return ans
q = int(input())
for each in range(q):
	(a, b) = map(int, input().split())
	if A[a - 1] % 2 == 1:
		print('Odd')
	elif a == b:
		print('Even')
	elif A[a]:
		print('Even')
	else:
		print('Odd')


n = int(input().strip())
a = [int(elem) for elem in input().split()]
q = int(input())
for a0 in range(0, q):
	(x, y) = input().split()
	x = int(x)
	y = int(y)
	if x > y:
		print('Odd')
	elif x == y:
		if a[x - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
	elif a[x] == 0:
		print('Odd')
	elif a[x - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


N = int(input())
A = list(map(int, input().split()))
Q = int(input())
for _ in range(Q):
	(x, y) = map(int, input().split())
	if x < y and A[x] == 0:
		print('Odd')
	elif A[x - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


A = []
N = 0

def find(x, y):
	if x == N:
		if A[x - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
		return
	if A[x - 1] % 2 == 0 and A[x] != 0:
		print('Even')
	elif A[x] == 0 and x == y:
		if A[x - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
	else:
		print('Odd')
N = int(input())
A = list(map(int, input().split()))
Q = int(input())
for x in range(Q):
	(a, b) = list(map(int, input().split()))
	find(a, b)


N = int(input())
A = [int(i) for i in input().strip().split()]
Q = int(input())
for i in range(Q):
	(x, y) = tuple((int(i) for i in input().strip().split()))
	if x < y:
		if A[x] == 0:
			print('Odd')
		elif A[x - 1] % 2 == 1:
			print('Odd')
		else:
			print('Even')
	elif A[x - 1] == 0:
		print('Even')
	elif A[x - 1] % 2 == 1:
		print('Odd')
	else:
		print('Even')


n = int(input().strip())
arr = [int(i) for i in input().strip().split(' ')]
t = int(input().strip())
for i in range(t):
	(x, y) = [int(i) for i in input().strip().split(' ')]
	if x > y:
		print('Odd')
	elif arr[x - 1] % 2 == 1:
		print('Odd')
	elif x == n:
		print('Even')
	elif arr[x] == 0 and x + 1 <= y:
		print('Odd')
	else:
		print('Even')


def find(x, y, A):
	n = len(A)
	if x > y:
		return 1
	if x < n and A[x] == 0 and (x == y):
		return A[x - 1] % 2
	if x < n and A[x] == 0:
		return 1
	ans = A[x - 1] % 2
	return ans
n = int(input())
ar = [int(x) for x in input().split()]
for _ in range(int(input())):
	(x, y) = [int(x) for x in input().split()]
	if find(x, y, ar) == 0:
		print('Even')
	else:
		print('Odd')


def find(x, y):
	if x > y:
		return 1
	ans = array[x] ** find(x + 1, y)
	return ans

def iseven(x, y):
	if x != y and array[x + 1] == 0:
		return 'Odd'
	if array[x] % 2 == 0:
		return 'Even'
	else:
		return 'Odd'
n = int(input().strip())
array = []
for n in input().strip().split(' '):
	array.append(int(n))
q = int(input().strip())
for a0 in range(q):
	(x, y) = [int(n) - 1 for n in input().strip().split(' ')]
	print(iseven(x, y))


def find(ar, x, y):
	if x > y:
		return 'Odd'
	elif y - x >= 1 and ar[x + 1] == 0:
		return 'Odd'
	elif ar[x] % 2 == 0:
		return 'Even'
	else:
		return 'Odd'
N = int(input())
ar = [int(x) for x in input().split()]
Q = int(input())
for i in range(Q):
	[x, y] = [int(x) for x in input().split()]
	print(find(ar, x - 1, y - 1))


n = int(input())
arr = [int(i) for i in input().split()]
arr.append(1)
k = int(input())
for i in range(k):
	querry = [int(i) for i in input().split()]
	a = querry[0]
	b = querry[1]
	print('Odd' if arr[a - 1] % 2 == 1 or (b > a and arr[a] == 0) else 'Even')


def sol(x, y, l):
	aux = y - x
	if aux == 0:
		ans = l[x - 1] % 2
	elif aux == 1:
		if l[x] == 0:
			ans = 1
		else:
			ans = l[x - 1] % 2
	elif l[x] == 0:
		if l[x + 1] == 0:
			ans == l[x - 1] % 2
		else:
			ans = 1
	else:
		ans = l[x - 1] % 2
	return ('Even', 'Odd')[ans]
int(input())
l = list(map(int, input().split()))
Q = int(input())
for i in range(Q):
	(x, y) = list(map(int, input().split()))
	print(sol(x, y, l))


import sys
f = sys.stdin
N = int(f.readline())
A = [int(x) for x in f.readline().split()]
Q = int(f.readline())
for i in range(Q):
	(x, y) = (int(x) for x in f.readline().split())
	if A[x - 1] == 0:
		print('Even')
	elif x != y and A[x] == 0:
		print('Odd')
	elif A[x - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


import random
import itertools

def find(arr, x, y):
	if x > y:
		return 1
	ans = pow(arr[x], find(arr, x + 1, y))
	return ans

def is_find_even(arr, low, high):
	if low > high:
		return False
	if low == high:
		return arr[low] % 2 == 0
	if 0 == arr[low]:
		return True
	if 0 == arr[low + 1]:
		return False
	return arr[low] % 2 == 0

def is_find_even_brute(arr, low, high):
	return find(arr, low, high) % 2 == 0

def main():
	arr_size = int(input())
	arr = [int(x) for x in input().split(' ')]
	test_count = int(input())
	for __ in range(test_count):
		(x, y) = [int(x) for x in input().split(' ')]
		print('Even' if is_find_even(arr, x - 1, y - 1) else 'Odd')

def test():
	for __ in range(100):
		arr = [random.randint(0, 9) for __ in range(6)]
		low = random.randint(0, len(arr) - 1)
		high = random.randint(0, len(arr) - 1)
		if is_find_even_brute(arr, low, high) != is_find_even(arr, low, high):
			print(arr, low, high, is_find_even_brute(arr, low, high), is_find_even(arr, low, high))
			break
main()


def func1(x, y, arr):
	if x > y:
		return 'Odd'
	elif x == y:
		if arr[x - 1] % 2 == 0:
			return 'Even'
		else:
			return 'Odd'
	elif (arr[x - 1] % 2 == 0) & (arr[x] != 0):
		return 'Even'
	else:
		return 'Odd'
nn = int(input())
arr = list(map(int, input().split()))
nq = int(input())
inp = []
for i in range(nq):
	inp.append(input())
for i in range(nq):
	q1 = list(map(int, inp[i].split()))
	print(func1(q1[0], q1[1], arr))


def main():
	N = int(input())
	A = [0] * (N + 2)
	s = input()
	A = [int(x) for x in s.strip().split()]
	Q = int(input())
	for i in range(0, Q):
		s = input()
		(x, y) = s.strip().split(' ')
		x = int(x) - 1
		y = int(y) - 1
		if A[x] % 2 == 0 and (y > x and A[x + 1] == 0) or A[x] % 2 == 1:
			print('Odd')
		else:
			print('Even')
main()


def get_consecutive_zero(a, x, y):
	total_zero = 0
	for p in range(x, y + 1):
		if a[p] == 0:
			total_zero += 1
		else:
			return total_zero
	return total_zero

def main():
	n = input()
	a = [int(t) for t in input().strip().split()]
	q = int(input())
	for _ in range(q):
		(x, y) = [int(t) - 1 for t in input().strip().split()]
		if a[x] % 2 != 0:
			print('Odd')
		elif x > y:
			print('Odd')
		elif get_consecutive_zero(a, x + 1, y) % 2 != 0:
			print('Odd')
		else:
			print('Even')
main()


N = int(input())
numbers = [int(x) for x in input().strip().split()]
Q = int(input())
for _ in range(Q):
	(x, y) = map(int, input().strip().split())
	if numbers[x - 1] % 2 or (x < N and numbers[x] == 0 and (x != y)):
		print('Odd')
	else:
		print('Even')


def isQueryEven(x, y):
	if x > y:
		return False
	if x == y:
		return arr_n[x - 1] % 2 == 0
	return arr_n[x - 1] % 2 == 0 and arr_n[x] != 0
N = int(input())
arr_n = [int(x) for x in input().split()]
Q = int(input())
for q_i in range(Q):
	(x, y) = (int(x) for x in input().split())
	if isQueryEven(x, y):
		print('Even')
	else:
		print('Odd')


import sys
n = int(sys.stdin.readline())
a = list(map(int, sys.stdin.readline().strip().split(' ')))
q = int(sys.stdin.readline())
for i in range(0, q):
	(x, y) = map(int, sys.stdin.readline().strip().split(' '))
	print('Odd' if a[x - 1] & 1 or (x < y and a[x] == 0) else 'Even')


def is_even(x, y, arr):
	if x > y or (x != y and arr[x] == 0):
		return False
	return arr[x - 1] % 2 == 0
n = int(input())
arr = [int(num) for num in input().split()]
q = int(input())
for _ in range(q):
	(x, y) = [int(num) for num in input().split()]
	print('Even' if is_even(x, y, arr) else 'Odd')


n = int(input())
l = list(map(int, input().split()))
query = int(input())
for q in range(query):
	(x, y) = map(int, input().split())
	if x > y:
		print('Odd')
	elif x == y and l[x - 1] % 2 == 0:
		print('Even')
	elif x == y and l[x - 1] % 2 == 1:
		print('Odd')
	elif x < n and l[x] == 0:
		print('Odd')
	elif l[x - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


n = int(input())
arr_input = input().split()
arr = [int(arr_input[i]) for i in range(n)]
q = int(input())

def find_value(arr, n):
	arr_input = input().split()
	x = int(arr_input[0])
	y = int(arr_input[1])
	if x == n:
		if arr[x - 1] % 2 == 0:
			return 'Even'
		else:
			return 'Odd'
	if arr[x - 1] % 2 == 0 and arr[x] != 0:
		return 'Even'
	elif x == y and arr[x] == 0:
		if arr[x - 1] % 2 == 0:
			return 'Even'
		else:
			return 'Odd'
	else:
		return 'Odd'
for i in range(q):
	value = find_value(arr, n)
	print(value)


_ = input()
arr = [0] + [int(x) for x in input().split()]
q = int(input())
for _ in range(q):
	(x, y) = [int(s) for s in input().split()]
	base = arr[x]
	power = 1 if x == y else arr[x + 1]
	print('Odd' if power == 0 or base % 2 == 1 else 'Even')


N = int(input())
a = list(map(int, input().split()))
Q = int(input())
for i in range(Q):
	(x, y) = map(int, input().split())
	x -= 1
	y -= 1
	if a[x] == 0 or (a[x] % 2 == 0 and (y == x or a[x + 1] != 0)):
		print('Even')
	else:
		print('Odd')


import sys
line = 0
for text in sys.stdin:
	if line == 1:
		a = text.split()
	if line > 2:
		x = int(text.split()[0])
		y = int(text.split()[1])
		if x > y:
			print('Odd')
		elif int(a[x - 1]) % 2 == 0:
			if x + 1 > y:
				print('Even')
			elif int(a[x]) == 0:
				print('Odd')
			else:
				print('Even')
		else:
			print('Odd')
	line += 1


def find(x, y):
	if x == y:
		if arr[x - 1] & 1:
			return 'Odd'
		else:
			return 'Even'
	else:
		if arr[x - 1] == 0:
			return 'Even'
		if arr[x] == 0:
			return 'Odd'
		if arr[x - 1] & 1:
			return 'Odd'
		else:
			return 'Even'
N = int(input())
arr = [int(x) for x in input().split(' ')]
Q = int(input())
for _ in range(Q):
	(x, y) = [int(x) for x in input().split(' ')]
	print(find(x, y))


def find(x, y, a):
	if x > y:
		return 1
	elif a[x - 1] == 0:
		return 0
	else:
		return 2 - (a[x - 1] % 2) ** find(x + 1, y, a)
_ = input()
a = [int(k) for k in input().split()]
n = int(input())
for i in range(n):
	(x, y) = [int(k) for k in input().split()]
	if find(x, y, a) % 2 == 0:
		print('Even')
	else:
		print('Odd')


l = int(input())
a = []
a = input().split()
a = [int(x) for x in a]
n = int(input())
for i in range(0, n):
	(x, y) = input().split()
	x = int(x)
	y = int(y)
	if a[x - 1] % 2 == 1:
		powerOdd = True
	else:
		powerOdd = False
	if x < y and x < l and (a[x] == 0):
		powerOdd = True
	if powerOdd:
		print('Odd')
	else:
		print('Even')


N = int(input())
A = [int(x) for x in input().split()]
for i in range(int(input())):
	q = [int(x) for x in input().split()]
	if q[0] > q[1]:
		print('Odd')
	elif q[1] > q[0] and A[q[0]] == 0:
		print('Odd')
	elif A[q[0] - 1] == 0:
		print('Even')
	else:
		print('Odd' if A[q[0] - 1] % 2 == 1 else 'Even')


n = int(input())
v = list(map(int, input().split()))
for xx in range(int(input())):
	(x, y) = map(int, input().split())
	if v[x - 1] & 1 or (y != x and v[x] == 0):
		print('Odd')
	else:
		print('Even')


input()
a = [int(s) for s in input().split()]
for _ in range(int(input())):
	(x, y) = [int(s) - 1 for s in input().split()]
	if x > y:
		print('Odd')
	elif x == y:
		print('Odd' if a[x] & 1 else 'Even')
	elif a[x + 1] == 0:
		print('Odd')
	else:
		print('Odd' if a[x] & 1 else 'Even')


from random import randint
from sys import stdin

def findcl(x, y):
	if x == y:
		return A[x] & 1
	if A[x + 1] == 0:
		return 1
	return A[x] & 1
rd = stdin
inn = rd.read(10 ** 8).splitlines()
N = int(inn[0])
A = [0] + list((int(i) for i in inn[1].split()))
Q = inn[2]
for i in inn[3:]:
	q = i.split()
	(x, y) = (int(q[0]), int(q[1]))
	print('Odd' if findcl(x, y) else 'Even')


import sys
N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().split()))
Q = int(sys.stdin.readline())
for _ in range(Q):
	(x, y) = list(map(int, sys.stdin.readline().split()))
	if x == y or A[x] > 0:
		print('Even' if A[x - 1] % 2 == 0 else 'Odd')
	else:
		print('Odd')


def main():
	n = int(input())
	arr = list(map(int, input().strip().split()))
	q = int(input())
	qarr = []
	for i in range(q):
		qarr.append(list(map(int, input().strip().split())))
	for q in qarr:
		x = q[0] - 1
		y = q[1] - 1
		if x != y and arr[x + 1] == 0:
			print('Odd')
			continue
		if arr[x] % 2:
			print('Odd')
		else:
			print('Even')
main()


import math
arraylen = int(input())
array = [int(x) for x in input().split()]
test = int(input())
for i in range(test):
	xy = [int(x) for x in input().split()]
	if array[xy[0] - 1] % 2 == 0:
		stat = 'Even'
	if array[xy[0] - 1] % 2 != 0:
		stat = 'Odd'
	if len(array) > xy[0]:
		if array[xy[0]] == 0 and xy[0] + 1 <= xy[1]:
			stat = 'Odd'
	if array[xy[0] - 1] == 0:
		stat = 'Even'
	if xy[0] > xy[1]:
		stat = 'Odd'
	print(stat)


import array
import math
N = int(input())
lines = input()
lines = lines.strip()
arr = lines.split(' ')
A = list(map(int, arr))
Q = int(input())
lines = ''
for i in range(Q):
	lines += input() + ' '
lines = lines.strip()
arr = lines.split(' ')
a = list(map(int, arr))
for i in range(Q):
	if a[2 * i] > a[2 * i + 1]:
		print('Odd')
	elif a[2 * i] == a[2 * i + 1]:
		if A[a[2 * i] - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
	elif A[a[2 * i]] == 0:
		print('Odd')
	elif A[a[2 * i] - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


import sys
arrSize = int(input().strip())
arr = input().strip().split(' ')
tcCount = int(input().strip())

def find(arr, xx, yy):
	ret = 0
	if xx > yy:
		return 1
	if xx == yy:
		return int(arr[xx - 1])
	elif int(arr[xx]) == 0:
		return 1
	else:
		return int(arr[xx - 1])
for i in range(tcCount):
	s = input().strip().split(' ')
	x = int(s[0])
	y = int(s[1])
	p = find(arr, x, y)
	if p % 2 != 0:
		print('Odd')
	else:
		print('Even')


n = int(input().strip())
num_array = [int(a_temp) for a_temp in input().strip().split(' ')]
q = int(input().strip())
queries = []
for _ in range(q):
	(x, y) = map(int, input().strip().split(' '))
	queries.append((x, y))
for query in queries:
	number = num_array[query[0] - 1]
	if number % 2 == 0 and (query[0] == query[1] or num_array[query[0]] != 0):
		print('Even')
	else:
		print('Odd')


n = int(input().strip())
a = [int(i) for i in input().strip().split()]
t = int(input().strip())
for _ in range(t):
	(x, y) = [int(i) for i in input().strip().split()]
	if a[x - 1] % 2 == 0 and (x == y or a[x] != 0):
		print('Even')
	else:
		print('Odd')


import sys
n = int(input().strip())
arr = input().strip().split(' ')
arr = [int(i) for i in arr]
for i in range(int(input().strip())):
	xy = input().strip().split(' ')
	x = int(xy[0])
	y = int(xy[1])
	if arr[x - 1] % 2 == 1:
		print('Odd')
	elif x + 1 > y:
		print('Even')
	elif arr[x] == 0:
		print('Odd')
	else:
		print('Even')


size = int(input())
arr = [int(i) for i in input().split()]
queries = int(input())
import sys

def rec_pow(arr):
	if len(arr) == 1:
		return arr[0]
	print(arr[0])
	return rec_pow(arr[1:]) ** arr[0]

def list_pow(arr):
	return rec_pow(arr[::-1])
for line in sys.stdin:
	(x, y) = (int(i) for i in line.split())
	if x == y:
		if arr[x - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
		continue
	if arr[x - 1] % 2 == 1 or arr[x] == 0:
		print('Odd')
	else:
		print('Even')


def find(x, y, A):
	if x > y:
		return 1
	if A[x] == 0:
		return 0
	return A[x] ** find(x + 1, y, A)

def find2(x, y, A):
	acc = 1
	for i in range(y, x - 1, -1):
		acc = A[i] ** acc
	return acc

def find3(x, y, A):
	if x + 1 <= y and A[x + 1] == 0:
		return 1
	return A[x]

def solve(x, y, A):
	return 'Odd' if find3(x, y, A) & 1 else 'Even'
_ = input()
N = [0] + [int(x) for x in input().strip().split()]
for _ in range(int(input())):
	(x, y) = map(int, input().strip().split())
	print(solve(x, y, N))


def solve(numbers, x, y):
	if x < len(numbers) and numbers[x] == 0 and (x != y):
		print('Odd')
	elif numbers[x - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')
input()
Ns = list(map(int, input().split()))
T = int(input())
for i in range(T):
	(x, y) = map(int, input().split())
	solve(Ns, x, y)


import sys
input()
a = list(map(int, input().strip().split(' ')))
t = int(input())
for i in range(t):
	(x, y) = map(int, input().strip().split(' '))
	if x > y:
		print('Odd')
		continue
	if x == y:
		if a[x - 1] & 1 == 1:
			print('Odd')
			continue
		else:
			print('Even')
			continue
	if a[x - 1] ** a[x] & 1 == 1:
		print('Odd')
	else:
		print('Even')


n = int(input())
A = [int(x) for x in input().split()]
q = int(input())
for _ in range(q):
	(x, y) = map(int, input().split())
	if n != x != y and A[x] == 0 or A[x - 1] % 2:
		print('Odd')
	else:
		print('Even')


N = int(input())
A = tuple(map(int, input().split()))
Q = int(input())
for _ in range(Q):
	(x, y) = tuple(map(int, input().split()))
	if x != y and A[x] == 0:
		print('Odd')
	else:
		print('Odd') if A[x - 1] % 2 else print('Even')


n = int(input())
a = [int(x) for x in input().split()]
q = int(input())
for i in range(q):
	(x, y) = [int(x) for x in input().split()]
	if y > x and a[x] == 0:
		print('Odd')
		continue
	if a[x - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


N = int(input())
A = [int(x) for x in input().split()]
Q = int(input())
for i in range(Q):
	(x, y) = (int(x) for x in input().split())
	if A[x - 1] % 2 == 1:
		print('Odd')
	elif x != y and A[x] == 0:
		print('Odd')
	else:
		print('Even')


n = int(input())
arr = [int(x) for x in input().split(' ')]
q = int(input())
for i in range(q):
	(x, y) = [int(x) for x in input().split(' ')]
	if arr[x - 1] % 2 == 0 and (x == y or x == n or arr[x] != 0):
		print('Even')
	else:
		print('Odd')


import sys
N = int(sys.stdin.readline())
A = [int(i) for i in sys.stdin.readline().split(' ')]
Q = int(sys.stdin.readline())
last = len(A) - 1
for t in range(0, Q):
	(x, y) = [int(i) for i in sys.stdin.readline().split(' ')]
	x = x - 1
	y = y - 1
	odd = False
	if x == last or x == y:
		odd = A[x] % 2 != 0
	else:
		odd = x > y or A[x + 1] == 0 or A[x] % 2 != 0
	print('Odd' if odd else 'Even')


def find(x, y):
	if x > y:
		return 1
	elif arr[x] == 0:
		return 0
	elif arr[x] == 1:
		return 1
	ans = arr[x] ** find(x + 1, y)
	return ans
n = int(input())
arr = map(int, input().strip().split(' '))
arr = list(arr)
for t in range(int(input())):
	(x, y) = input().split(' ')
	(x, y) = [int(x), int(y)]
	x = x - 1
	y = y - 1
	if x < y:
		if arr[x] % 2 == 0:
			if arr[x + 1] != 0:
				print('Even')
			else:
				print('Odd')
		else:
			print('Odd')
	elif arr[x] % 2 == 0:
		print('Even')
	else:
		print('Odd')


import sys

def printResult(value):
	if value % 2 == 0:
		print('Even')
	else:
		print('Odd')

def readInt():
	return int(sys.stdin.readline())

def readInts():
	return [int(x) for x in sys.stdin.readline().split(' ')]
size = readInt()
array = readInts()
tests = readInt()
for i in range(tests):
	xy = readInts()
	x = xy[0]
	y = xy[1]
	if x > y:
		printResult(1)
	elif x == y:
		printResult(array[x - 1])
	else:
		printResult(array[x - 1] ** array[x])


(n, A) = (input(), [int(x) for x in input().split()])
for _ in range(int(input())):
	(x, y) = map(int, input().split())
	print('Odd' if A[x - 1] % 2 != 0 or (y > x and A[x] == 0) else 'Even')


size = int(input())
box = [int(n) for n in input().split(' ')]
trial = int(input())
for t in range(trial):
	case = [int(n) for n in input().split(' ')]
	if case[0] == case[1]:
		if box[case[0] - 1] % 2 == 0:
			print('Even')
		else:
			print('Odd')
	elif box[case[0] - 1] % 2 == 1:
		print('Odd')
	elif box[case[0]] == 0:
		print('Odd')
	else:
		print('Even')


h = input()
A = [int(i) for i in input().split()]
Q_arr = [[int(i) for i in input().split()] for _ in range(int(input()))]
for Q in Q_arr:
	if Q[0] != Q[1] and A[Q[0]] == 0:
		print('Odd')
	elif A[Q[0] - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


n = int(input())
s = input()
l = s.split()
a = list(map(int, l))
q = int(input())
for _ in range(0, q):
	z = input()
	w = z.split()
	p = list(map(int, w))
	x = p[0]
	y = p[1]
	if x != n:
		if a[x] != 0:
			if a[x - 1] % 2 == 0:
				print('Even')
			else:
				print('Odd')
		elif x == y:
			if a[x - 1] % 2 == 0:
				print('Even')
			else:
				print('Odd')
		else:
			print('Odd')
	elif a[x - 1] % 2 == 0:
		print('Even')
	else:
		print('Odd')


n = int(input())
a = list(map(int, input().split()))
q = int(input())
for _ in range(q):
	(x, y) = map(int, input().split())
	if a[x - 1] % 2 == 1 or (x < n and x != y and (a[x] == 0)):
		print('Odd')
	else:
		print('Even')


Nsize = int(input())
N = tuple(map(int, input().split()))
Q = int(input())
for i in range(0, Q):
	(x, y) = map(int, input().split())
	if x < y and N[x] == 0:
		print('Odd')
	elif N[x - 1] % 2 == 1:
		print('Odd')
	else:
		print('Even')