import java.util.Iterator;
public class Bag<Item> implements Iterable<Item>
{
private Node first;
private int N;
private class Node
{
Item item;
Node next;
}//end class Node
public boolean isEmpty(){return N==0;}
public int size(){return N;}
public void add(Item item)
{
Node oldfirst=first;
first=new Node();
first.item=item;
first.next=oldfirst;
N++;
}//end add
public Iterator<Item> iterator()
{return new ListIterator();}
private class ListIterator implements Iterator<Item>
{
private Node current=first;
public boolean hasNext(){return current!=null;}
public void remove(){}
public Item next()
{
Item item=current.item;
current=current.next;
return item;
}//end next
}//end Class ListIterator
public static void main(String[] args)
{
Bag<String> b=new Bag<String>();
while(!StdIn.isEmpty())
{
String item=StdIn.readString();
b.add(item);
}//end while
for(String item:b)
StdOut.print(item+" ");
}//end main
}