/* Auteur: Nicolas JANEY          */
/* nicolas.janey@univ-fcomte.fr   */
/* Fevrier 2005                   */

import java.io.*;

public class TriageTableau {
  static BufferedReader flux = new BufferedReader(new InputStreamReader(System.in));

  /* Fonction d'affichage de tous les entiers contenus    */
  /* dans un tableau d'entiers                            */

  public static void affichageTableau(int [] t) {
    int i;
  /* Pour toutes les valeurs d'indice 0 a t.length-1 inclus    */
    for ( i = 0 ; i < t.length ; i++ )
      System.out.println(t[i]);
  }

  /* Fonction d'initialisation de tous les entiers        */
  /* contenus dans un tableau d'entiers                   */
  /* avec une valeur tiree au sort entre 0 et max inclus  */

  public static void initialisationTableau(int [] t,int max) {
    int i;
  /* Pour toutes les valeurs d'indice 0 a t.length-1 inclus    */
    for ( i = 0 ; i < t.length ; i++ ) {
  /* Initialisation de t[i] avec un entier tire                */
  /* au hasard entre 0.0 (inclu) et max+1 (exclu)              */
      t[i] =(int) ((max+1)*Math.random()); }
  }

  /* Fonction de reorganisation d'un tableau d'entiers pour    */
  /* placer toutes les valeurs paires aux petits indices       */
  /* et les valeurs impaires aux indices superieurs            */

  public static void triageTableau(int [] t) {
  /* Declaration et allocation de deux tableaux d'entiers      */
  /* auxiliaires destines a recueillir des valeurs paires      */
  /* et impaires (dimensionnes a la taille de t)               */
    int [] tpr = new int[t.length];
    int [] tmp = new int[t.length];
  /* Declaration et initialisation a 0 de deux compteurs       */
  /* pour les valeurs paires et impaires                       */
    int cptpr = 0;
    int cptmp = 0;
    int i;
  /* Pour toutes les valeurs d'indice 0 a t.length-1 inclus    */
    for ( i = 0 ; i < t.length ; i++ )
  /* Suivant la parite de la valeur d'indice i du tableau t,   */
  /* copie de cette valeur dans tpr ou tmp et mise a jour      */
  /* du compteur correspondant                                 */
      if ( (t[i]%2) == 0 ) {
        tpr[cptpr] = t[i];
        cptpr++; }
        else {
        tmp[cptmp] = t[i];
        cptmp++; }
  /* Report dans t de l'integralite des valeurs de tpr         */
    for ( i = 0 ; i < cptpr ; i++ )
      t[i] = tpr[i];
  /* Report dans t de l'integralite des valeurs de tmp         */
  /* a la suite des valeurs reportees depuis tpr               */
    for ( i = 0 ; i < cptmp ; i++ )
      t[i+cptpr] = tmp[i];
  }

  /* Fonction principale                                  */
  
  public static void main(String [] args) throws IOException {
  /* Definition et allocation d'un tableau de 10 entiers       */
  /* tires au sort entre 0 et 5                                */
    int [] tab = new int[10];
    initialisationTableau(tab,5);
    System.out.println("Le tableau contient les valeurs suivantes:");
  /* Appel a la fonction d'affichage                           */
    affichageTableau(tab);
    System.out.println();
  /* Reorganisation de tab par appel a triageTableau           */
    triageTableau(tab);
  /* Nouvel affichage de tab (reorganise) par appel            */
  /* a la fonction d'affichage                                 */
    affichageTableau(tab);
  }
}