import java.io.*;

class Liste {
    int   val;
    Liste suiv;

    Liste (int v, Liste s) {
        val = v;
        suiv = s;
    }
}

public class td6 {

    public static String Lire () {
        BufferedReader in = 
            new BufferedReader(new InputStreamReader(System.in));
        String s;
        try { s = in.readLine(); }
        catch (IOException e) { s = "echec"; }
        return(s);
    }

    static void affiche (Liste m) {
        if (m != null) {        
            System.out.print(m.val + " ");
            affiche(m.suiv);
        }
        else
            System.out.println();
    }

    static Liste creerListe() {
        int x = Integer.parseInt(Lire());
        if (x > -1)
            return(new Liste(x, creerListe()));
        else
            return(null);
    }

    static Liste ajoutQueue (Liste m, int x) {
        if (m == null)
            return(new Liste(x, null));
        else {
            ajoutQueue2(m, x);
            return(m);
        }
    }

    static void ajoutQueue2 (Liste l, int y) {
        // on sait qu'elle n'est pas vide 
        if (l.suiv != null)
            ajoutQueue2(l.suiv, y);
        else
            l.suiv = new Liste(y, null);
    }

    static Liste copier(Liste m) {
        if (m != null)  
            return(new Liste(m.val, copier(m.suiv)));
        else
            return(null);
    }

    static Liste supprime (Liste m, int k) {
        if (m == null)
            return(null);
        else if (k == 1)
            return(m.suiv);
        else {
            m.suiv = supprime(m.suiv, k-1);
            return(m);
        }
    }

    static Liste supprimeTous (Liste m, int x) {
        if (m == null)
	  return(null);                            // cas liste vide
        else {
	  Liste tmp = supprimeTous(m.suiv, x);     // traitement recursif reste
	  if (m.val == x)                          // traitement de la tete :
	    return(tmp);                           // on la garde ou pas
	  else {
	    m.suiv = tmp;
	    return(m);
	  }
	}
    }

    public static void main (String[] args) {
        Liste l, m;
        l = creerListe();
        affiche(l); 

	//        System.out.println("Copie :");
	//        m = copier(l);
	//        affiche(m);
	
	//        System.out.println("Ajout en queue :");
	//        l = ajoutQueue(l, Integer.parseInt(Lire()));
	//        affiche(l);

	//        System.out.println("Suppression :");
	//        l = supprime(l, Integer.parseInt(Lire()));
	//        affiche(l);

	System.out.println("Suppression toutes occurences :");
	l = supprimeTous(l, Integer.parseInt(Lire()));
	affiche(l);
    }
}

