Even Odd Query
Difficulty: Hard

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<sup>b</sup>*.

**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 &le; *N* &le; 10<sup>5</sup>  
2 &le; *Q* &le; 10<sup>5</sup>  
1 &le; *x,y* &le; *N*  
*x* &le; *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  

Input Format:

Output Format:

Sample Input:

Sample Output:

Python 3 starter code:
#
# Complete the 'solve' function below.
#
# The function is expected to return a STRING_ARRAY.
# The function accepts following parameters:
#  1. INTEGER_ARRAY arr
#  2. 2D_INTEGER_ARRAY queries
#

def solve(arr, queries):
    # Write your code here




Reference solution (C++):
###C++  
```cpp  
#include<stdio.h>
#include<assert.h>
#define MaxN 100000
int A[MaxN+1];
int main()
{
    int N,Q,x,y,last=1,flip;
    scanf("%d",&N);
    for(int i=1;i<=N;i++){
        scanf("%d",&A[i]);
        assert(0 <= A[i] && A[i]<=9);
        assert(!(last==0 && last==A[i]));
        last=A[i];
    }
    scanf("%d",&Q);
    while(Q--){
        scanf("%d %d",&x,&y);
        assert(x<=y && y<=N && x>=1);
        if(x!=y && A[x+1]==0)    flip=1;
        else    flip=0;
        if(flip)    printf("Odd\n");
        else if(A[x]&1)    printf("Odd\n");
        else    printf("Even\n");
    }
    return 0;
}
```