Совсем недавно на одном из занятий по программированию Петя изучил оператор цикла while. Особенно Пете понравилось использовать этот оператор для изменения порядка элементов в некотором массиве на противоположный. Для этого Петя даже написал специальную процедуру.
На языке программирования Pascal эта процедура выглядит так:
procedure Swap(i, j : integer);
var
tmp : integer;
begin
while i < j do begin
tmp := a[i]; a[i] := a[j]; a[j] := tmp;
i := i + 1;
j := j - 1;
end;
end;
А на языке программирования С — вот так:
void Swap(int i, int j)
{
int tmp;
while (i < j) {
tmp = a[i]; a[i] = a[j]; a[j] = tmp;
i++; j–;
}
return;
}
Обе процедуры работают с глобальным массивом натуральных чисел a_1, a_2, …, a_N. Элементы массива пронумерованы с 1.
Теперь Петю интересует вопрос, как будет выглядеть некоторый заданный массив из N натуральных чисел, если к нему последовательно применять процедуры Swap(1, N), затем Swap(1, N-1), затем Swap(1, N-2), и так далее до Swap(1, 2)?
Входной файл содержит две строки. В первой строке записано единственное натуральное число N (2 ≤ N ≤ 100000) — количество элементов в массиве.
Во второй строке записаны N натуральных чисел a_1, a_2, …, a_N, (1 ≤ a_i ≤ 1000), разделённых пробелами — элементы массива.
Выведите единственную строку, содержащую элементы исходного массива, разделённые пробелами, в том порядке, который получится после применения к этому массиву процедуры Swap описанным выше способом.