#include<stdio.h>
#include<stdlib.h>
struct elemento{
        int info;
        struct elemento * next;
};
typedef struct elemento Elemento; 
typedef Elemento* Lista;
void Ordina(Lista *lis, int v); 
void Cancella(Lista *lis);
void Stampa(Lista lis); 
int main() {
	int v=1; 
	Lista lis=NULL;
	while(v>=0) {
		scanf("%d", &v);
		Ordina(&lis, v); 
		}
	if(v<0){
		Cancella(&lis);
	}
	Stampa(lis);
	printf("\n");
	return 0;
}
void Ordina(Lista *lis, int v){
	Lista aux;
	aux=malloc(sizeof(Elemento));
	aux->info=v;
	if ((*lis)==NULL){
		aux->next=NULL;
		*lis=aux;
	}
	else { 
		if ((*lis)->info>v){
			aux->next=*lis;
			*lis=aux;
		}
	else Ordina(&((*lis)->next), v);
	}
}

void Stampa(Lista lis){
	if (lis!=NULL){
		printf("%d", lis->info);
		if ( lis->next!=NULL){
			printf("\n");
			Stampa(lis->next);
		}
	}
}
void Cancella(Lista *lis) { 
	Lista aux;
	if (*lis != NULL) {
		aux = *lis;
		*lis = (*lis)->next; 
		free(aux);
	} 
}


