#include <bits/stdc++.h>
#define pb push_back
#define fi first
#define sc second
#define inf 2000000000ll
#define MP make_pair
#define orta ((a+b)/2)
#define min3(a,b,c) min(a,min(b,c))
#define max3(a,b,c) max(a,max(b,c))
#define dbg(x) cerr<<#x<<":"<<x<<endl
#define N 1000005
#define MOD 1000000007
using namespace std;
typedef  long long  ll;
typedef pair <int ,int> ii;
int n, d[N], yer[N], fen[N], ekle[N << 2];
ii solup[N], sagup[N], sg[N << 2];
pair < int, ii > q[N << 1];


void up(int k) 
{
	while(k)
	{
		fen[k]++;
		k -= k & -k;
	}
}
int get(int k) 
{
	int top = 0;
	while(k < N)
	{
		top += fen[k];
		k += k & -k;
	}
	return top;
}
void init(int k, int a, int b) 
{
    if(a == b) 
	{
        sg[k] = ii(0, a);
        return;
    }
    init(2*k, a,orta);
    init(2*k+1,orta+1,b);
    sg[k] = max(sg[2*k], sg[2*k+1]);
}
void up(int k, int a, int b, int x, int y, int us) 
{
    if(y < a || b < x)
        return;
    if(x <= a && b <= y) 
	{
        sg[k].fi += us;
        ekle[k] += us;
        return;
    }
    up(2*k, a, orta, x, y, us);
    up(2*k+1, orta + 1, b, x, y, us);
    sg[k] = max(sg[2*k], sg[2*k+1]);
    sg[k].fi += ekle[k];
}
int main() {

    scanf("%d",&n);
    for(int i = 1; i <= n; i++) 
	{
        scanf("%d",&d[i]);
        d[i]!=i;
        yer[d[i]]=i;
    }
    int mx = 0;
	vector < int > vsol, vsag;
    for(int i = 1; i <= n; i++) 
	{
        mx = max(mx, d[i]);
        if(mx == d[i])
            vsol.push_back(d[i]);
        int tut = lower_bound(vsol.begin(), vsol.end(), d[i]) - vsol.begin();
        solup[i] = ii(tut, vsol.size() - 1);
        if(solup[i].fi > solup[i].sc)
            solup[i].fi = -1;
    }
    int mn = inf;
    for(int i = n; i >= 1; i--) 
	{
        mn = min(mn, d[i]);
        if(mn == d[i])
            vsag.push_back(-d[i]);
        int tut = lower_bound(vsag.begin(), vsag.end(), -d[i]) - vsag.begin();
        sagup[i] = ii(tut, vsag.size() - 1);
        if(sagup[i].fi > sagup[i].sc)
            sagup[i].fi = -1;
    }
    int say = 0;
    for(int i = 1; i <= n; i++) 
        if(solup[i].fi != -1 and sagup[i].fi != -1) 
		{
            q[say++] = MP(solup[i].fi, ii(sagup[i].fi, sagup[i].sc));
            q[say++] = MP(solup[i].sc + 1, ii(sagup[i].fi - inf, sagup[i].sc - inf));
        }
    pair < int, ii > cev = MP(-1, ii(0, 0));
    sort(q, q + say);
    init(1, 0, n - 1);
    for(int i = 0; i < say; i++) 
	{
        int j = q[i].fi,a=q[i].sc.fi,b=q[i].sc.sc;
        int k = a < 0 ? -1 : 1;
        if(k == -1) {
            a += inf;
            b += inf;
        }
        up(1, 0, n - 1, a, b, k);
        if(k == 1 && sg[1].fi >= cev.fi) 
		{
            pair < int, ii > don = MP(sg[1].fi, ii(yer[vsol[j]], yer[-vsag[sg[1].sc]]));
			if(don.fi > cev.fi || (don.sc < cev.sc && don.fi == cev.fi))
                cev = don;
        }
    }
    if(cev.fi==1)
    {
        printf("Cool Array");
    }
	else printf("%d %d\n", cev.sc.fi,cev.sc.sc);
}