Fenwick tree is a data structure effectively supporting prefix sum queries.
For a number denote as maximal such that is divisible by 2^k. For example, h(24) = 3, h(5) = 0. Let l(t) = 2^{h(t)}, for example, l(24) = 8, l(5) = 1.
Consider array a_1, a_2, ..., a_n of integer numbers. Fenwick tree for this array is the array b_1, b_2, ..., b_n such that

So
b_1 = a_1,
b_2 = a_1 + a_2,
b_3 = a_3,
b_4 = a_1 + a_2 + a_3 + a_4,
b_5 = a_5,
b_6 = a_5 + a_6,
...
For example, the Fenwick tree for the array
a = (3, -1, 4, 1,-5, 9)
is the array
b = (3, 2, 4, 7,-5, 4).
Let us call an array self-fenwick if it coincides with its Fenwick tree. For example, the array above is not self-fenwick, but the array a = (0,-1, 1, 1, 0, 9) is self-fenwick.
You are given an array . You are allowed to change values of some elements without changing their order to get a new array a' which must be self-fenwick. Find the way to do it by changing as few elements as possible.
The first line of the input file contains — the number of elements in the array (1 \le n \le 100000). The second line contains integer numbers — the elements of the array. The elements do not exceed 10^9 by their absolute values.
Output numbers — the elements of the array a'. If there are several solutions, output any one.
Example 1