import qualified Data.Vector.Unboxed as VU
import qualified Data.Vector.Unboxed.Mutable as VUM
import Data.ByteString.Char8 as B
import Data.Char
import Control.Monad

put :: Int -> IO ()
put s = Prelude.putStr show s >> Prelude.putStr " "

solve vec n 
    | even n = do
        VU.forM_ (VU.reverse $ VU.fromList [1,3..n-1]) $ \i -> VUM.read vec i >>= put
        VU.forM_ (VU.fromList [0,2..n-2]) $ \i -> VUM.read vec i >>= put
        Prelude.putStrLn ""
    | otherwise = do
        VU.forM_ (VU.reverse $ VU.fromList [0,2..n-1]) $ \i -> VUM.read vec i >>= put
        VU.forM_ (VU.fromList [1,3..n-2]) $ \i -> VUM.read vec i >>= put
        Prelude.putStrLn ""

main = do
    n <- readLn :: IO Int
    xs <- VU.unfoldrN n (B.readInt . B.dropWhile isSpace) <$> B.getLine
    xs' <- VU.unsafeThaw xs
    solve xs' n