#include #include #include #include #include #include #include #include #include #include #include using namespace std; #define FOR(prom, a, b) for(int prom = (a); prom < (b); prom++) #define FORD(prom, a, b) for(int prom = (a); prom > (b); prom--) #define FORDE(prom, a, b) for(int prom = (a); prom >= (b); prom--) #define DRI(a) int a; scanf("%d ", &a); #define DRII(a, b) int a, b; scanf("%d %d ", &a, &b); #define RI(a) scanf("%d ", &a); #define RII(a, b) scanf("%d %d ", &a, &b); #define PB push_back #define MP make_pair #define ll long long #define ull unsigned long long #define MM(co, cim) memset((co), (cim), sizeof((co))) #define DEB(x) cerr << ">>> " << #x << " : " << x << endl; // OMG ty kokot int A[1000007]; int main () { int N; while(cin >> N) { FOR(i,0,N) RI(A[i]); bool poss; int W, W2, H, H2, d; // ven int mx = 0; W = H = 0; W2 = H2 = 0; d = 0; poss = true; FOR(i,0,N) { switch(d) { case 0: if(A[i] <= H) { poss = false; mx = max(mx,i); H = A[i]; W = W - W2; break; } H2 = H; H = A[i]; break; case 1: if(A[i] <= W) { poss = false; mx = max(mx,i); W = A[i]; H = H - H2; break; } W2 = W; W = A[i]; break; } d++; d %= 2; if(!poss) break; } if(poss) { cout << "OK" << endl; continue; } poss = true; FOR(i,mx+1,N) { switch(d) { case 0: if(A[i] >= H) { poss = false; mx = i; break; } H = A[i]; break; case 1: if(A[i] >= W) { poss = false; mx = i; break; } W = A[i]; break; } d++; d %= 2; if(!poss) break; } if(poss) { cout << "OK" << endl; continue; } cout << mx << endl; } return 0; }