로봇 카렐이 미로 탈출 대회에 나간다. 카렐은 명령 N개로 이루어진 프로그램을 실행한다. i번째 명령은 "ai미터 앞으로 이동한 다음 오른쪽으로 90도 회전한다"를 뜻한다. 그래서 프로그램 전체는 명령마다의 이동 거리를 나열한 정수 수열 a1,a2,…,aN으로 적는다.
로봇은 좌표 (0,0)에서 북쪽을 보고 출발한다. 프로그램이 1,2,3,4,5이면 로봇은 (−2,3)에서 동쪽을 보고 멈춘다.
올바른 프로그램은 로봇이 그리는 경로가 자기 자신과 닿지 않는다. 연속한 두 명령이 그리는 두 선분은 사이의 꺾이는 점을 공유하는데, 이 점만은 예외로 허용한다. 그 밖에 두 선분이 공유하는 점이 하나라도 있으면, 한 점에서 스치기만 해도 그 프로그램은 올바르지 않다.
프로그램마다 올바른지 판정하고, 올바르지 않으면 앞에서부터 몇 개의 명령까지가 올바른 경로를 그리는지 구하라.
입력은 여러 개의 테스트 케이스로 이루어지고 파일의 끝에서 끝난다. 각 테스트 케이스는 두 줄이다. 첫째 줄에 명령의 개수 N (1≤N≤106)이 주어진다. 둘째 줄에 프로그램을 나타내는 정수 N개 a1,a2,…,aN (1≤ai≤109)이 공백으로 구분되어 주어진다.
테스트 케이스마다 한 줄씩 출력한다. 주어진 프로그램의 경로가 자기 자신과 닿지 않으면 OK를 출력한다. 그렇지 않으면 정수 M (0≤M<N) 하나를 출력한다. M은 명령 a1,a2,…,aM으로 이루어진 프로그램의 경로가 자기 자신과 닿지 않는 가장 큰 값이다.