김상근 교수는 수치표를 만드는 새로운 컴퓨팅 엔진을 개발했다. 이 엔진은 한 변수 다항식 함수의 값을 계산한다.
예를 들어 다항식 함수가 $f(x) = x^2 + 2x + 1$이면, 엔진이 내놓는 값은 $1,(=f(0))$, $4,(=f(1))$, $9,(=f(2))$, $16,(=f(3))$, $25,(=f(4))$이다.
그런데 상근이가 음주 코딩을 하다가 실수를 하는 바람에, 이 엔진은 항상 정확히 하나의 값만 잘못 출력한다. 그래서 위 다항식을 입력하면 $1, 4, 9, 16, 25$ 대신 예를 들어 $1, 4, 12, 16, 25$가 나올 수 있다.
엔진이 출력한 값들이 주어졌을 때, 몇 번째 결과가 잘못 계산되었는지 구하는 프로그램을 작성하시오.
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스의 첫째 줄에는 다항식의 차수 $d$가 주어진다. 예를 들어 $4x^5 + 3x + 0.5$의 차수는 $5$이고, $2.4x + 3.8$의 차수는 $1$이다. $d$는 $5$보다 작거나 같다.
다음 $d+3$개의 줄에는 $f(0), f(1), \dots, f(d+2)$의 결과가 차례로 주어진다. 다항식 함수 $f$ 자체는 입력으로 주어지지 않는다. 모든 결과 값은 $-100.0$보다 크고 $100.0$보다 작은 실수이다.
잘못 계산된 값은 항상 $f(0), f(1), \dots, f(d+2)$ 중 하나이며, 올바른 값과의 오차는 $1.0$보다 크다. 컴퓨터의 소수 계산에서는 오차를 피할 수 없으므로 다른 값에도 오차가 있을 수 있으나, 그 오차는 매우 작아 $10^{-6}$을 넘지 않는다.
입력의 마지막 줄에는 $0$이 하나 주어진다.
각 테스트 케이스에 대해, 잘못 계산된 값이 몇 번째 값인지 출력한다. $f(i)$의 결과가 잘못되었다면 $i$를 출력한다.