import java.io.*;
import java.lang.*;
import java.util.*;

public class FilListe {
	
    Liste           debut;
    Liste           fin;

  FilListe (Liste a, Liste b)  {
  	debut = a;
  	fin = b;
  }
  
  static FilListe FaireFvide () {
    Liste garde = new Liste();   
    return new FilListe (garde, garde);
  }

  static boolean estVide (FilListe f) { 
    return f.debut == f.fin;
  }

  static int valeur (FilListe f) {
    Liste b = f.debut.suivant;
    return b.contenu;
  }

  static void ajouter (int x, FilListe f) {
    Liste a = new Liste (x, null);
    f.fin.suivant = a;
    f.fin = a;
  }

  static void supprimer (FilListe f) {   
    f.debut = f.debut.suivant;
  }

  static void imprimer (FilListe f) {
    System.out.println ("debut = " + f.debut.suivant + "; " +
                        "fin = " + f.fin);
    System.out.println ();
  }

  static void Erreur (String msg) {
      System.err.println ("test des files: " + msg);
      System.exit (1);
  }

  public static void main(String args[]) {
      
    FilListe a = FaireFvide();
    ajouter (1, a);
    ajouter (2, a);
    ajouter (3, a);
    ajouter (4, a);
    ajouter (5, a);
    imprimer (a);
    supprimer (a);
    ajouter (6, a);
    imprimer (a);
    supprimer (a);
    ajouter (7, a);
    supprimer (a);
    imprimer (a);
  }
}

public class Liste {

  int contenu;
  Liste suivant;

  Liste () {}

  Liste (int x, Liste a) {
      contenu = x;
      suivant = a;
  }
  
  public String toString ()  {
    StringBuffer s = new StringBuffer ("");
  	for (Liste a=this; a != null; a = a.suivant)
  	    s = s.append(a.contenu + " ");
  	return new String (s);
  }
  
}
