Знайдіть Відхилення
Професор Абакус нещодавно розробив новий обчислювальний двигун для створення числових таблиць. Цей двигун призначений для обчислення значень поліноміальної функції однієї змінної в кількох точках одночасно. Наприклад, для поліноміальної функції f(x)=x^2+2x+1 очікуваний результат обчислень може бути: 1 (= f(0)), 4 (= f(1)), 9 (= f(2)), 16 (= f(3)), і 25 (= f(4)).
На жаль, двигун має несправність, через яку одне з обчислених значень завжди є неправильним. Наприклад, для тієї ж поліноміальної функції він може видати 1, 4, 12, 16, і 25 замість 1, 4, 9, 16, і 25.
Вам доручено допомогти професору виявити несправні компоненти. Як перший крок, ви повинні написати програму, яка аналізує результати обчислень двигуна і знаходить неправильне значення.
Вхідні дані
Вхідні дані складаються з кількох наборів, кожен з яких представляє результат обчислення у наступному форматі.
d
v_0
v_1
...
v_{d+2}
Тут d у першому рядку - це додатне ціле число, яке вказує на степінь полінома, тобто найвищий показник змінної. Наприклад, степінь 4x^5+3x+0.5 дорівнює п'яти, а 2.4x+3.8 дорівнює одному. d не перевищує п'яти.
Наступні d+3 рядки містять результати обчислень f(0), f(1), ..., і f(d+2) у цьому порядку, де f - це поліноміальна функція. Кожен з рядків містить десятковий дріб у межах від -100.0 до 100.0, виключно.
Ви можете припустити, що неправильне значення, яке є рівно одним з f(0), f(1), ..., і f(d+2), має помилку, що перевищує 1.0. Оскільки округлювальні помилки неминучі, інші значення також можуть мати помилки, але вони невеликі і ніколи не перевищують 10^{-6}.
Кінець введення позначається рядком, що містить нуль.
Вихідні дані
Для кожного набору даних виведіть i в рядку, коли v_i є неправильним.