스스로 교차하는 경로

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

로봇 카렐이 미로 탈출 대회에 나간다. 카렐은 명령 NN개로 이루어진 프로그램을 실행한다. ii번째 명령은 "aia_i미터 앞으로 이동한 다음 오른쪽으로 90도 회전한다"를 뜻한다. 그래서 프로그램 전체는 명령마다의 이동 거리를 나열한 정수 수열 a1,a2,,aNa_1, a_2, \dots, a_N으로 적는다.

로봇은 좌표 (0,0)(0, 0)에서 북쪽을 보고 출발한다. 프로그램이 1,2,3,4,51, 2, 3, 4, 5이면 로봇은 (2,3)(-2, 3)에서 동쪽을 보고 멈춘다.

올바른 프로그램은 로봇이 그리는 경로가 자기 자신과 닿지 않는다. 연속한 두 명령이 그리는 두 선분은 사이의 꺾이는 점을 공유하는데, 이 점만은 예외로 허용한다. 그 밖에 두 선분이 공유하는 점이 하나라도 있으면, 한 점에서 스치기만 해도 그 프로그램은 올바르지 않다.

프로그램마다 올바른지 판정하고, 올바르지 않으면 앞에서부터 몇 개의 명령까지가 올바른 경로를 그리는지 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어지고 파일의 끝에서 끝난다. 각 테스트 케이스는 두 줄이다. 첫째 줄에 명령의 개수 NN (1N1061 \le N \le 10^6)이 주어진다. 둘째 줄에 프로그램을 나타내는 정수 NNa1,a2,,aNa_1, a_2, \dots, a_N (1ai1091 \le a_i \le 10^9)이 공백으로 구분되어 주어진다.

출력

테스트 케이스마다 한 줄씩 출력한다. 주어진 프로그램의 경로가 자기 자신과 닿지 않으면 OK를 출력한다. 그렇지 않으면 정수 MM (0M<N0 \le M < N) 하나를 출력한다. MM은 명령 a1,a2,,aMa_1, a_2, \dots, a_M으로 이루어진 프로그램의 경로가 자기 자신과 닿지 않는 가장 큰 값이다.