import sys

import os

import math

import bisect

import collections

import itertools

import heapq

import re

import queue



ii = lambda: int(sys.stdin.buffer.readline().rstrip())

il = lambda: list(map(int, sys.stdin.buffer.readline().split()))

fl = lambda: list(map(float, sys.stdin.buffer.readline().split()))

iln = lambda n: [int(sys.stdin.buffer.readline().rstrip()) for _ in range(n)]



iss = lambda: sys.stdin.buffer.readline().decode().rstrip()

sl = lambda: list(map(str, sys.stdin.buffer.readline().decode().split()))

isn = lambda n: [sys.stdin.buffer.readline().decode().rstrip() for _ in range(n)]



lcm = lambda x, y: x * y / math.gcd(x, y)



MOD = 10 ** 9 + 7

MAX = float('inf')





def main():

    if os.getenv("LOCAL"):

        sys.stdin = open("input.txt", "r")



    N = ii()

    A = il()

    ret = collections.deque()



    for n in range(N):

        if N % 2 == (n+1) % 2:

            ret.appendleft(A[n])

        else:

            ret.append(A[n])

    print((*ret))





if __name__ == '__main__':

    main()

import sys, os, math, bisect, itertools, collections, heapq, queue

# from scipy.sparse.csgraph import csgraph_from_dense, floyd_warshall

from decimal import Decimal

from collections import defaultdict



# import fractions



sys.setrecursionlimit(10000000)



ii = lambda: int(sys.stdin.buffer.readline().rstrip())

il = lambda: list(map(int, sys.stdin.buffer.readline().split()))

fl = lambda: list(map(float, sys.stdin.buffer.readline().split()))

iln = lambda n: [int(sys.stdin.buffer.readline().rstrip()) for _ in range(n)]



iss = lambda: sys.stdin.buffer.readline().decode().rstrip()

sl = lambda: list(map(str, sys.stdin.buffer.readline().decode().split()))

isn = lambda n: [sys.stdin.buffer.readline().decode().rstrip() for _ in range(n)]



lcm = lambda x, y: (x * y) // math.gcd(x, y)

# lcm = lambda x, y: (x * y) // fractions.gcd(x, y)



MOD = 10 ** 9 + 7

MAX = float('inf')





def main():

    if os.getenv("LOCAL"):

        sys.stdin = open("input.txt", "r")



    N = ii()

    A = il()

    if N % 2 == 0:

        print((*A[1::2][::-1], *A[::2]))

    else:

        print((*A[::2][::-1], *A[1::2]))





if __name__ == '__main__':

    main()

import sys
import os
import math
import bisect
import collections
import itertools
import heapq
import re
import queue

ii = lambda: int(sys.stdin.buffer.readline().rstrip())
il = lambda: list(map(int, sys.stdin.buffer.readline().split()))
fl = lambda: list(map(float, sys.stdin.buffer.readline().split()))
iln = lambda n: [int(sys.stdin.buffer.readline().rstrip()) for _ in range(n)]
iss = lambda: sys.stdin.buffer.readline().decode().rstrip()
sl = lambda: list(map(str, sys.stdin.buffer.readline().decode().split()))
isn = lambda n: [sys.stdin.buffer.readline().decode().rstrip() for _ in range(n)]
lcm = lambda x, y: x * y / math.gcd(x, y)
MOD = 10**9 + 7
MAX = float("inf")


def main():
    if os.getenv("LOCAL"):
        sys.stdin = open("input.txt", "r")
    N = ii()
    A = il()
    ret = collections.deque()
    for n in range(N):
        if N % 2 == (n + 1) % 2:
            ret.appendleft(A[n])
        else:
            ret.append(A[n])
    print((*ret))


if __name__ == "__main__":
    main()

import sys, os, math, bisect, itertools, collections, heapq, queue

# from scipy.sparse.csgraph import csgraph_from_dense, floyd_warshall
from decimal import Decimal
from collections import defaultdict

# import fractions
sys.setrecursionlimit(10000000)
ii = lambda: int(sys.stdin.buffer.readline().rstrip())
il = lambda: list(map(int, sys.stdin.buffer.readline().split()))
fl = lambda: list(map(float, sys.stdin.buffer.readline().split()))
iln = lambda n: [int(sys.stdin.buffer.readline().rstrip()) for _ in range(n)]
iss = lambda: sys.stdin.buffer.readline().decode().rstrip()
sl = lambda: list(map(str, sys.stdin.buffer.readline().decode().split()))
isn = lambda n: [sys.stdin.buffer.readline().decode().rstrip() for _ in range(n)]
lcm = lambda x, y: (x * y) // math.gcd(x, y)
# lcm = lambda x, y: (x * y) // fractions.gcd(x, y)
MOD = 10**9 + 7
MAX = float("inf")


def main():
    if os.getenv("LOCAL"):
        sys.stdin = open("input.txt", "r")
    N = ii()
    A = il()
    if N % 2 == 0:
        print((*A[1::2][::-1], *A[::2]))
    else:
        print((*A[::2][::-1], *A[1::2]))


if __name__ == "__main__":
    main()

-import sys -import os -import math -import bisect -import collections -import itertools -import heapq -import re -import queue +import sys, os, math, bisect, itertools, collections, heapq, queue +# from scipy.sparse.csgraph import csgraph_from_dense, floyd_warshall +from decimal import Decimal +from collections import defaultdict + +# import fractions +sys.setrecursionlimit(10000000) -lcm = lambda x, y: x * y / math.gcd(x, y) +lcm = lambda x, y: (x * y) // math.gcd(x, y) +# lcm = lambda x, y: (x * y) // fractions.gcd(x, y) -    ret = collections.deque() -    for n in range(N): -        if N % 2 == (n + 1) % 2: -            ret.appendleft(A[n]) -        else: -            ret.append(A[n]) -    print((*ret)) +    if N % 2 == 0: +        print((*A[1::2][::-1], *A[::2])) +    else: +        print((*A[::2][::-1], *A[1::2]))