Professor Abacus has just built a new computing engine for making numerical tables. It was designed to calculate the values of a polynomial function in one variable at several points at a time. With the polynomial function f(x)=x^2+2x+1, for instance, a possible expected calculation result is 1 (= f(0)), 4 (= f(1)), 9 (= f(2)), 16 (= f(3)), and 25 (= f(4)).
It is a pity, however, the engine seemingly has faulty components and exactly one value among those calculated simultaneously is always wrong. With the same polynomial function as above, it can, for instance, output , , , , and instead of , , , , and .
You are requested to help the professor identify the faulty components. As the first step, you should write a program that scans calculation results of the engine and finds the wrong values.
The input is a sequence of datasets, each representing a calculation result in the following format.
v_0
v_1
v_{d+2}
Here, in the first line is a positive integer that represents the degree of the polynomial, namely, the highest exponent of the variable. For instance, the degree of 4x^5+3x+0.5 is five and that of 2.4x+3.8 is one. is at most five.
The following d+3 lines contain the calculation result of , , ..., and f(d+2) in this order, where is the polynomial function. Each of the lines contains a decimal fraction between and , exclusive.
You can assume that the wrong value, which is exactly one of , , ..., and f(d+2), has an error greater than . Since rounding errors are inevitable, the other values may also have errors but they are small and never exceed 10^{-6}.
The end of the input is indicated by a line containing a zero.
For each dataset, output in a line when v_i is wrong.
Example 1