#include <bits/stdc++.h> using namespace std; const int MAXN = 500005; int N, M, A[MAXN], it[MAXN*4], C[MAXN]; int get(int u, int v, int l, int r, int k) { if (u>r||v<l) return 0; if (u<=l&&v>=r) return it[k]; int mid = (l+r)/2; int t1 = get(u,v,l,mid,(k<<1)), t2 = get(u,v,mid+1,r,(k<<1)+1); return t1+t2; } void update(int u, int l, int r, int k) { it[k]++; if (l==r) return; int mid = (l+r)/2; if (u<=mid) update(u,l,mid,(k<<1)); else update(u,mid+1,r,(k<<1)+1); } void prep() { M = 0; for(int i=1; i<=N; i++) { C[i] = get(0,A[i]-1,0,N+1,1); C[i] = A[i]-C[i]-1; M=max(M,C[i]);update(A[i],0,N+1,1); } } void tinh() { int vt; for(int i=1; i<=N; i++) if (C[i]==M) { vt=i; break; } memset(it,0,sizeof(it)); int t1=0, t2=0, res = 0, res2; for(int i=vt+1; i<=N; i++) { if (A[i]<A[vt]) t1++; if (A[i]>A[vt]) t2++; int g1 = get(0,A[i]-1,0,N+1,1); int g2 = get(A[i]+1,N+1,0,N+1,1); if (t1+g2-t2-g1>res) { res=t1+g2-t2-g1; res2=i; } update(A[i],0,N+1,1); } printf("%d %d\n",vt,res2); } int main() { // freopen("test.inp","r",stdin); scanf("%d",&N); for(int i=1; i<=N; i++) scanf("%d",&A[i]); prep(); if (M==0) { printf("Cool Array\n"); return 0; } tinh(); return 0; }