Program FunList;
Type tPItem = ^tItem;
     tItem  = Record
                Next : tPItem;
                Content : String
              End;
Var Root : tPItem;
    Item : tPItem;
Procedure InsertItem ( Var List : tPItem; NewItem : tPItem ); Far; External;
Procedure ShowList ( List : tPItem ); Far; External;
{$L FUNUTILS}
Begin
  Root := Nil;
  While Not Eof Do Begin
    Item := New(tPItem);
    ReadLn(Item^.Content);
    InsertItem(Root,Item)
  End;
  ShowList(Root);
  While Root <> Nil Do Begin
    Item := Root;
    Root := Root^.Next;
    Dispose(Item)
  End
End.