import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Test {
public static void merge(int l,int r,List<Integer> list){
if(l>=r)return ;
int mid=(l+r)/2;
merge(l,mid,list);
merge(mid+1,r,list);
List<Integer>lis1=new ArrayList<>();
int ptrl=l,ptrr=mid+1;
while(ptrl<=mid || ptrr<=r){
if(ptrl==mid+1){
lis1.add(list.get(ptrr++));
}
else if(ptrr==r+1){
lis1.add(list.get(ptrl++));
}
else{
if(list.get(ptrl)>list.get(ptrr))
lis1.add(list.get(ptrr++));
else
lis1.add(list.get(ptrl++));
}
}
for(int i=l;i<=r;++i){
list.set(i,lis1.get(i-l));
}
}
public static void main(String[] args) {
List<Integer>list=new ArrayList<>();
for (int i = 0; i < 10; i++)
list.add(new Random().nextInt(1000));
merge(0,list.size()-1,list);
for(Integer it:list)
System.out.println(it);
}
}