#include <iostream>
using namespace std;
void merge(int A[], int lo, int hi){
if(lo<hi){
int mid=(lo+hi)/2;
merge(A, lo, mid);
merge(A, mid+1, hi);
}
for(int i = lo; i<=hi; ++i){
cout << A[i] << " ";
}
cout << endl;
}
int main() {
int A[] = {8,7,6,4,5,2,1,3};
merge(A, 0, 7);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBtZXJnZShpbnQgQVtdLCBpbnQgbG8sIGludCBoaSl7CmlmKGxvPGhpKXsKaW50IG1pZD0obG8raGkpLzI7Cm1lcmdlKEEsIGxvLCBtaWQpOwptZXJnZShBLCBtaWQrMSwgaGkpOwp9CmZvcihpbnQgaSA9IGxvOyBpPD1oaTsgKytpKXsKY291dCA8PCBBW2ldIDw8ICIgIjsKfQpjb3V0IDw8IGVuZGw7Cn0KaW50IG1haW4oKSB7CglpbnQgQVtdID0gezgsNyw2LDQsNSwyLDEsM307CiAgICBtZXJnZShBLCAwLCA3KTsKCXJldHVybiAwOwp9