#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

#define gc getchar
int getint() { unsigned int c; int x = 0; while (((c = gc()) - '0') >= 10) { if (c == '-') return -getint(); if (!~c) exit(0); } do { x = (x << 3) + (x << 1) + (c - '0'); } while (((c = gc()) - '0') < 10); return x; }
int getstr(char *s) { int c, n = 0; while ((c = gc()) <= ' ') { if (!~c) exit(0); } do { s[n++] = c; } while ((c = gc()) > ' ' ); s[n] = 0; return n; }
template<class T> inline bool chmin(T &a, T b) { return a > b ? a = b, 1 : 0; }
template<class T> inline bool chmax(T &a, T b) { return a < b ? a = b, 1 : 0; }

// 0-based index, range inclusive.
template<class T> struct BIT {
    vector<T> as;
    void init(int n, T u = 0) { as.assign(n, u);}
    T sum(int s, int e) { return sum(e) - sum(s - 1);}
    T sum(int e) { T s = 0; for (; e >= 0; e = (e & e + 1) - 1) s += as[e]; return s; }
    void add(int p, T v) { for (; p < as.size(); p |= p + 1) as[p] += v; }
};

#include <sys/time.h>
struct Clock {
    typedef unsigned long long T;
    double sd, tps, d;
    double start_sec, tic_per_sec, delta;
    T start_tic;
    // time in sec
    double get() {
        if (tic_per_sec) return (tic() - start_tic) / tic_per_sec;
        delta = sec() - start_sec;
        if (delta < 0.5) return delta;
        tic_per_sec = (tic() - start_tic) / delta;
        return get();
    }
    void reset() {
        tic_per_sec = 0;
        start_sec = sec();
        start_tic = tic();
    }
    T tic() {
        unsigned int a, b;
        __asm__ volatile ("rdtsc" : "=a" (a), "=d" (b));
        return a | ((T)b << 32);
    }
    double sec() { timeval t; gettimeofday(&t, 0); return t.tv_sec + t.tv_usec * 1e-6; }
};


BIT<int> bit;

const int N = 500100;
int n;

int count_inversions(const vector<int>& as) {
    bit.init(n);
    int res = 0;
    for (int j = 0; j < n; j++) {
        res += j - bit.sum(as[j]);
        bit.add(as[j], 1);
    }
    return res;
}


double r = 0.5;
struct pred {
    bool operator()(const pair<int, int>& a, const pair<int, int>& b) const {
        double aa = (n - a.first) * r + a.second * (1 - r);
        double bb = (n - b.first) * r + b.second * (1 - r);
        return aa < bb;
    }
};

int main () {
    int i, j, k, tcc, tc = 1 << 28;
    Clock clc;
    clc.reset();
    for (tcc = 0; tcc < tc; tcc++) {
        n = getint();
        vector<int> as(n), sort_as(n);
        for (i = 0; i < n; i++) as[i] = getint();
        sort_as = as;
        sort(sort_as.begin(), sort_as.end());
        if (sort_as == as) {
            puts("Cool Array");
            continue;
        }
        ll res = 1LL << 59;
        int a, b;
        int done = 0;
        ll normal_inv = count_inversions(as);
        vector<pair<int, int>> xs(n);
        for (i = 0; i < n; i++) xs[i] = make_pair(as[i], i);
        sort(xs.begin(), xs.end(), pred());

        // for (i = 0; i < n; i++) cout << xs[i].first << " " << xs[i].second << endl;

        int ii, jj, jc;
        for (ii = 0; ii < n; ii++) {
            for (jj = n - 1, jc = 0; jc < 20 && jj > ii; jj--, jc++) {

                i = xs[ii].second;
                j = xs[jj].second;
                //for (i = 0; i < n; i++) {
                // for (j = i + 1; j < n; j++) {
                // for (j = n - 1; j > i; j--) {
                int aa = as[i], bb = as[j];
                if (aa < bb) continue;
                // swap(as[i], as[j]); // do
                //ll inversion_count = count_inversions(as);
                ll inversion_count = normal_inv - 1;
                for (int k = i + 1; k < j; k++) {
                    if (aa < as[k]) inversion_count ++;
                    else inversion_count--;
                    if (bb > as[k]) inversion_count++;
                    else inversion_count--;
                }
                // cout << i << " " << j << " cnt = " << inversion_count << endl;
                //swap(as[i], as[j]); // undo
                if (chmin(res, inversion_count)) {
                    a = i, b = j;
                }
                if (res == inversion_count) {
                    if (a > i) a = i, b = j;
                    if (a == i) {
                        if (b > j) a = i, b = j;
                    }
                }
                if (clc.get() > 1.90) { done = 1; break; }
            }
            if (done) break;
        }
        printf("%d %d\n", a + 1, b + 1);
    }
    return 0;
}