class Turing {

  static boolean termine (Object o) {
      // \esc{determine la terminaison de o.f()}
      boolean resultat;
      // \esc{contenu breveté par le vendeur}
      return resultat;
  }
}

class Facile { 
  void f () {
  }
}

class Boucle {
  void f () {
      for (int i = 1; i > 0; ++i)
          ;
 }
}

class Absurde {

   void f () {
       while (Turing.termine(this))
           ;
   }

   public static void main (String args[]) {
       Facile o1 = new Facile();
       System.out.println (Turing.termine(o1));
       Boucle o2 = new Boucle();
       System.out.println (Turing.termine(o2));
       Absurde o3 = new Absurde();
       System.out.println (Turing.termine(o3));
   }
}
