#include <bits/stdc++.h> using namespace std; const int maxn=1000000; long long a[1000000],f[maxn],n,check1,t[1000000],g[1000000],v[1000000],r[1000000]; long long calc(long long i) { long long res=0; while (i<=n) { res+=f[i]; i+=i&-i; } return res; } void update(long long i,long long val) { while (i>0) { f[i]+=val; i-=i&-i; } } long long calc2(long long i) { long long res=0; while (i>0) { res+=f[i]; i-=i&-i; } return res; } void update2(long long i,long long val) { while (i<=n) { f[i]+=val; i+=i&-i; } } int check() { long long res=0; for (int i=1;i<=n;i++) { res+=calc(a[i]+1); t[i]=calc(a[i]+1); update(a[i],1); } return res; } int main() { cin>> n; for (int i=1;i<=n;i++) cin >> a[i]; for (int o=1; o<=n; o++) if (a[o]!=o) { if (n>500) { int st=check(); int tmp=1; for (int i=1;i<=n;i++) if (t[i]>t[tmp]) tmp=i; for (int i=1;i<=n;i++) f[i]=0; for (int i=1;i<=n;i++) { g[i]=calc(a[tmp]+1); update(a[i],1); } for (int i=1;i<=n;i++) f[i]=0; int nmin=st,res; for (int i=1;i<=n;i++) f[i]=0; for (int i=tmp-1;i>=1;i--) { r[i]=calc(a[i]+1); update(a[i],1); } for (int i=1;i<tmp;i++) { int cur=st+r[i]-tmp+i+1+r[i]-g[tmp]+g[i+1]+tmp-i-1-g[tmp]+g[i+1]; if (a[tmp]<a[i]) cur--; else cur++; if (cur<nmin) { nmin=cur; res=i; } } if (nmin==st) { cout << "Cool array"; } else cout << res << " " << tmp; return 0; } long long res=1e9+7; int res1,res2; int check1=0,check2=check(); for (int i=1;i<=n;i++) for (int j=i+1;j<=n;j++) { swap(a[i],a[j]); for (int p=1;p<=n;p++) f[p]=0; int co=check(); if (co<check2) check1=1; if (co<res) { res=co; res1=i,res2=j; } swap(a[i],a[j]); } if (check1) cout << res1 << " " << res2; else cout << "Cool Array"; return 0; } cout << "Cool Array"; }