#include <stdlib.h> 
mergesort(int *feld, int laenge)
{
int i,j,l,k,*f;
if (laenge < 2) return;
l=laenge/2;
f = calloc(l,sizeof(int));
for(i=0;i<l;i++) f[i]=feld[i];
mergesort(f,l);
mergesort(feld+l,laenge-l);
i=0;j=l;
for (k=0;k<laenge;k++)
	if (i>=l) feld[k]=feld[j++];
	else if(j>=laenge) feld[k]=f[i++];
	else if (f[i] <= feld[j]) feld[k]=f[i++];
	else  feld[k]=feld[j++];
free(f);
}


       main() 
       { 
            int i,n; 
		int *feld;
		scanf("%d",&n);

	feld = calloc(n,sizeof(int));
            for (i=0; i<n; i++) feld[i]=rand();
	   

            mergesort(feld, n);
            for (i=0; i<n; i++) 
                    printf("%d ",feld[i]); 
            printf("\n"); 
       }