#include<cstdio>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include<queue>
#include<cmath>
#include<iostream>
#include<string>
using namespace std;
#define F first
#define S second
#define MP make_pair
#define PB push_back
#define LL long long
#define PII pair<int, int> 
#define PLL pair<LL, LL> 
const int M=1024*512;

struct node
{
	int ind, re, ad;
};

int n, r=-1, a, b;
node D[2*M];
vector<PII> X, V;
int T[M];
bool B[M];

void ad(int v, int vp, int vk, int p, int k, int w)
{
	if(vp>k || vk<p)
		return;
	if(vp>=p && vk<=k)
	{
		D[v].ad+=w;
		return;
	}
	D[2*v].ad+=D[v].ad;
	D[2*v+1].ad+=D[v].ad;
	D[v].ad=0;
	int mid=(vp+vk)/2;
	ad(2*v, vp, mid, p, k, w);
	ad(2*v+1, mid+1, vk, p, k, w);
	D[v].re=D[2*v+1].re+D[2*v+1].ad;
	D[v].ind=D[2*v+1].ind;
	if(D[2*v].re+D[2*v].ad>=D[v].re)
	{
		D[v].re=D[2*v].re+D[2*v].ad;
		D[v].ind=D[2*v].ind;
	}
}

void add(int x, int y, int w)
{
	int p=0, k=(int)V.size()-1, mid=(p+k)/2, st=n+1, en=-1;
	while(p<=k)
	{
		if(V[mid].F>=x)
		{
			k=mid-1;
			st=min(st, mid);
		}
		else
			p=mid+1;
		mid=(p+k)/2;
	}
	p=0;
	k=(int)V.size()-1;
	mid=(p+k)/2;
	while(p<=k)
	{
		if(V[mid].S<=y)
		{
			p=mid+1;
			en=max(en, mid);
		}
		else
			k=mid-1;
		mid=(p+k)/2;
	}
	//printf("lol %d %d %d; %d %d\n", w, x, y, st, en);
	if(st>en)
		return;
	ad(1, 0, M-1, st, en, w);
}

int main()
{
	//ios_base::sync_with_stdio(0);
	scanf("%d", &n);
	int maxi=0;
	for(int i=1; i<=n; i++)
	{
		int qwe;
		scanf("%d", &qwe);
		X.PB(MP(qwe, i));
		T[i]=qwe;
		if(maxi<qwe)
		{
			maxi=qwe;
			B[i]=1;
			//printf("%d\n", i);
		}
	}
	sort(X.begin(), X.end());
	int mini=1000000;
	for(int i=n; i>0; i--)
	{
		if(T[i]<mini)
		{
			mini=T[i];
			V.PB(MP(i, T[i]));
		}
	}
	//for(int i=0; i<(int)X.size(); i++)
	//	printf("%d %d\n", X[i].F, X[i].S);
	for(int i=0; 2*i<(int)V.size(); i++)
		swap(V[i], V[V.size()-i-1]);
	for(int i=0; i<(int)V.size(); i++)
		D[M+i].ind=V[i].F;
	for(int i=M-1; i>0; i--)
		D[i]=D[2*i];
	int ind=0;
	for(int i=1; i<=n; i++)
	{
		if(B[i])
		{
			while(ind<(int)X.size() && X[ind].F<=T[i])
			{
				add(X[ind].S, X[ind].F, 1);
				ind++;
			}
			if(D[1].ad+D[1].re>r)
			{
				r=D[1].ad+D[1].re;
				a=i;
				b=D[1].ind;
			}
		}
		add(i, T[i], -1);
	}
	//printf("%d\n", r);
	if(r<2)
		printf("Cool Array\n");
	else
		printf("%d %d\n", a, b);
	return 0;
}