#include<iostream>
using namespace std;
int a[11]={2, 7, 8, 3, 1, 6, 9, 0, 5, 4, -3};
int n=11;
void my_merge(int low,int high){
int i=low;
int j=(low+high)/2+1;
int k=0;
int mid=(low+high)/2;
int *temp=new int[high-low+1];
while(i<=mid&&j<=high){
if(a[i]<a[j]){
temp[k]=a[i];
i++;
}
else{
temp[k]=a[j];
j++;
}
k++;
}
while(i<=mid){
temp[k++]=a[i++];
}
while(j<=high){
temp[k++]=a[j++];
}
for(int i=0;i<high-low+1;i++){
a[low+i]=temp[i];
}
}
void my_sort(int low,int high){
if(low<high){
int mid=(low+high)/2;
my_sort(low,mid);
my_sort(mid+1,high);
my_merge(low,high);
}
}
void my_print(){
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
}
int main()
{
my_print();
cout<<endl;
my_sort(0,n-1);
my_print();
cout<<endl;
return 0;
}