#include<bits/stdc++.h>
#include "secret.h"
using namespace std;
int a[1001],have[1001][1001];
int n;
void dc(int l,int r)
{
if(l==r)
return;
int m=l+r>>1;
for(int i=m-1;i>=l;--i)
have[i][m]=Secret(a[i],have[i+1][m]);
for(int i=m+2;i<=r;++i)
have[m+1][i]=Secret(have[m+1][i-1],a[i]);
dc(l,m);
dc(m+1,r);
}
void Init(int N, int A[])
{
memset(have,-1,sizeof(have));
n=N;
for(int i=0;i<n;++i)
a[i]=A[i];
for(int i=0;i<n;i++)
have[i][i]=a[i];
dc(0,n-1);
}
int Query(int L,int R)
{
if(~have[L][R])
return have[L][R];
int id=L;
for(int i=L;i<R;++i)
if((~have[L][i]) && (~have[i+1][R]))
{
id=i;
break;
}
if(have[L][id]==-1 || have[id+1][R]==-1)
{
cout<<L<<' '<<id<<' '<<have[L][id]<<'\n';
cout<<id<<' '<<R<<' '<<have[id+1][R]<<'\n';
return 1;
}
return Secret(have[L][id],have[id+1][R]);
}
// g++ -O2 -std=c++11 -o grader grader.cpp secret.cpp