n=int(eval(input()))

l=[0]*n

ind=n//2

l0=list(map(int,input().split()))

f=1

if n%2==0:

  f=-1

for i in range(n):

  if f==1:

    l[ind-i]=l0[i]

    f=-1

    ind-=i

  else:

    l[ind+i]=l0[i]

    f=1

    ind+=i

print((*l))
import math,string,itertools,fractions,heapq,collections,re,array,bisect,sys,random,time



sys.setrecursionlimit(10**7)

inf=10**20

mod=10**9+7



def LI(): return list(map(int,input().split()))

def I(): return int(eval(input()))

def LS(): return input().split()

def S(): return eval(input())



def main():

  n=I()

  l=LI()



  if n==1:

    return l[0]



  cen=l[0]

  l.remove(cen)



  la=[]

  lb=[]

  for i in range(len(l)):

    if i%2==0:

      la.append(l[i])

    else:

      lb.append(l[i])



  if n%2==0:

    la.reverse()

    return ' '.join(str(x) for x in la)+' '+str(cen)+' '+' '.join(str(x) for x in lb)

  else:

    lb.reverse()

    return ' '.join(str(x) for x in lb)+' '+str(cen)+' '+' '.join(str(x) for x in la)



print((main()))

n = int(eval(input()))
l = [0] * n
ind = n // 2
l0 = list(map(int, input().split()))
f = 1
if n % 2 == 0:
    f = -1
for i in range(n):
    if f == 1:
        l[ind - i] = l0[i]
        f = -1
        ind -= i
    else:
        l[ind + i] = l0[i]
        f = 1
        ind += i
print((*l))

import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time

sys.setrecursionlimit(10**7)
inf = 10**20
mod = 10**9 + 7


def LI():
    return list(map(int, input().split()))


def I():
    return int(eval(input()))


def LS():
    return input().split()


def S():
    return eval(input())


def main():
    n = I()
    l = LI()
    if n == 1:
        return l[0]
    cen = l[0]
    l.remove(cen)
    la = []
    lb = []
    for i in range(len(l)):
        if i % 2 == 0:
            la.append(l[i])
        else:
            lb.append(l[i])
    if n % 2 == 0:
        la.reverse()
        return (
            " ".join(str(x) for x in la)
            + " "
            + str(cen)
            + " "
            + " ".join(str(x) for x in lb)
        )
    else:
        lb.reverse()
        return (
            " ".join(str(x) for x in lb)
            + " "
            + str(cen)
            + " "
            + " ".join(str(x) for x in la)
        )


print((main()))

-n = int(eval(input())) -l = [0] * n -ind = n // 2 -l0 = list(map(int, input().split())) -f = 1 -if n % 2 == 0: -    f = -1 -for i in range(n): -    if f == 1: -        l[ind - i] = l0[i] -        f = -1 -        ind -= i +import math, string, itertools, fractions, heapq, collections, re, array, bisect, sys, random, time + +sys.setrecursionlimit(10**7) +inf = 10**20 +mod = 10**9 + 7 + + +def LI(): +    return list(map(int, input().split())) + + +def I(): +    return int(eval(input())) + + +def LS(): +    return input().split() + + +def S(): +    return eval(input()) + + +def main(): +    n = I() +    l = LI() +    if n == 1: +        return l[0] +    cen = l[0] +    l.remove(cen) +    la = [] +    lb = [] +    for i in range(len(l)): +        if i % 2 == 0: +            la.append(l[i]) +        else: +            lb.append(l[i]) +    if n % 2 == 0: +        la.reverse() +        return ( +            " ".join(str(x) for x in la) +            + " " +            + str(cen) +            + " " +            + " ".join(str(x) for x in lb) +        ) -        l[ind + i] = l0[i] -        f = 1 -        ind += i -print((*l)) +        lb.reverse() +        return ( +            " ".join(str(x) for x in lb) +            + " " +            + str(cen) +            + " " +            + " ".join(str(x) for x in la) +        ) + + +print((main()))