Plotting Polynomials

Пусть есть многочлен p(x) = anxn + ... + a1x + a0 степени n и мы хотим построить этот многочлен в m целых точках x = 0, 1, ..., m-1. Простой алгоритм определения значений в этих точках потребует mn умножений и mn сложений.

Одним из способов ускорения вычислений является использование результатов, вычисленных ранее. Например, если p(x) = a1x + a0 и p(i) уже вычислено, то p(i + 1) = p(i) + a1. Таким образом, каждое последующее значение p(x) может быть вычислено за одну операцию сложения каждое.

В общем случае мы можем вычислить p(i + 1) из p(i) за n сложений после соответствующей инициализации. Если мы инициализируем константы C0, C1, ..., Cn соответственно, можно вычислять p(i), используя следующий псевдокод:

p(0) = C_0; t_1 = C_1; ... t_n = C_n;

for i from 1 to m-1 do

p(i) = p(i-1) + t_1;

t_1 = t_1 + t_2;

t_2 = t_2 + t_3;

...

...

t_(n-1) = t_(n-1) + t_n;

end

Например, если p(x) = a1x + a0, можно инициализировать C0 = a0 и C1 = a1

Ваша задача - определить константы C0, C1, ..., Cn.

Input

Ввод состоит из одной строки. Первое число в строке - n, 1≤n≤6. Далее через пробел идут n целых чисел an, ..., a1, a0. Вы можете считать, что |ai|≤50 для всех i, и an≠0.

Output

Выведите числа C0, C1, ..., Cn через пробел.

Sample inputSample Output
1 5 2
2 5
2 2 -4 5
5 -2 4
6 1 -20 4 30 0 -1 2
2 14 -302 -2136 -3144 -600 720