#!/usr/bin/python3
# Obousměrné spojové seznamy s hlavou

import sys

class MyNode:
    def __init__(self, x):
        # Prvek si pamatuje hodnotu a odkaz na předchůdce i následníka
        self.value = x
        self.prev = None
        self.next = None

class MyList:
    def __init__(self):
        # Seznam vždy držíme za hlavu: speciální prvek, který nenese žádnou
        # užitečnou hodnotu.
        self.head = MyNode(None)
        self.head.prev = self.head.next = self.head

    def insert_node(self, n, after):
        """Zapojí prvek n za prvek after."""
        before = after.next     # Pozor, before se může rovnat after
        n.prev = after
        n.next = before
        before.prev = n
        after.next = n

    def prepend_node(self, n):
        """Zapojí prvek n na začátek seznamu (za hlavu)."""
        self.insert_node(n, self.head)

    def append_node(self, n):
        """Zapojí prvek n na konec seznamu (tedy za předchůdce hlavy)."""
        self.insert_node(n, self.head.prev)

    def prepend(self, x):
        """Zapojí prvek se zadanou hodnotu na začátek seznamu."""
        return self.prepend_node(MyNode(x))

    def append(self, x):
        """Zapojí prvek se zadanou hodnotu na konec seznamu."""
        return self.append_node(MyNode(x))

    def print(self):
        n = self.head.next
        while n is not self.head:
            print(n.value)
            n = n.next

l = MyList()
for a in sys.stdin:
    l.prepend(int(a))
    l.append(int(a))

l.print()