#include <iostream>
#include <algorithm>
#include <vector>
#define MAXN 500010

using namespace std;

int n,a[MAXN];
pair<int,int> s[4*MAXN];
int lz[4*MAXN];

void init(int i, int l, int r) {
    if (l == r) {
        s[i] = make_pair(0, -l);
        return;
    }
    int mid = (l + r) / 2;
    init(2*i,l,mid);
    init(2*i+1,mid+1,r);
    s[i] = max(s[2*i], s[2*i+1]);
}

void push(int i, int l, int r) {
    s[i].first += lz[i];
    if (l != r) {
        lz[2*i] += lz[i];
        lz[2*i+1] += lz[i];
    }
    lz[i] = 0;
}

void add(int i, int l, int r, int ll, int rr, int val) {
    push(i,l,r);
    if (r < ll || l > rr) return;
    if (l >= ll && r <= rr) {
        lz[i] += val;
        push(i,l,r);
        return;
    }
    int mid = (l + r) / 2;
    add(2*i,l,mid,ll,rr,val);
    add(2*i+1,mid+1,r,ll,rr,val);
    s[i] = max(s[2*i],s[2*i+1]);
}

pair<int,int> query(int i, int l, int r, int ll, int rr) {
    push(i,l,r);
    if (r < ll || l > rr) return make_pair(-MAXN, -MAXN);
    if (l >= ll && r <= rr) return s[i];
    int mid = (l + r) / 2;
    return max(query(2*i,l,mid,ll,rr),query(2*i+1,mid+1,r,ll,rr));
}

int mx[MAXN],mn[MAXN];
vector<pair<int,int> > stk;
vector<pair<int,int> > v;

int main() {
    ios::sync_with_stdio(0);
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        stk.push_back(make_pair(a[i],i));
    }
    sort(stk.begin(),stk.end());
    reverse(stk.begin(),stk.end());

    bool sorted = 1;
    for (int i = 1; i <= n; i++)
        if (a[i] != i) sorted = 0;
    if (sorted) {
        cout << "Cool Array\n";
        return 0;
    }

    mx[1] = a[1];
    for (int i = 2; i <= n; i++)
        mx[i] = max(a[i], mx[i-1]);
    mn[n] = a[n];
    for (int i = n-1; i > 0; i--)
        mn[i] = min(a[i], mn[i+1]);

    init(1,1,n);

    pair<int,pair<int,int> > ans = make_pair(0,make_pair(0,0));
    for (int i = 1; i <= n; i++) {
        if (a[i] == mx[i]) {
            v.push_back(make_pair(a[i],i));
            add(1,1,n,i,i,1);
        }
        else if (a[i] == mn[i]) {
            while (stk.back().first < a[i]) {
                int x = stk.back().second;
                stk.pop_back();
                if (x < i && a[x] != mn[x]) {
                    add(1,1,n,1,x,-1);
                }
            }
            pair<int,int> q = query(1,1,n,1,i);
            ans = max(ans, make_pair(q.first, make_pair(q.second, -i)));
        }
        else if (a[i] >= stk.back().first) {
            int x = upper_bound(v.begin(),v.end(),make_pair(a[i],0)) -> second;
            add(1,1,n,x,i,1);
        }

        //for (int i = 1; i <= n; i++) cerr << query(1,1,n,i,i).first << ' ';
        //cerr << endl;
    }

    cout << -ans.second.first << ' ' << -ans.second.second << '\n';
}