#include using namespace std; int *tab, *tab2; void merge(int start_1, int koniec_1, int start_2, int koniec_2){ for(int i = start_1; i <= koniec_2; i++){ tab2[i] = tab[i]; } int i = start_1; int j = start_2; int k = start_1; while(k < koniec_2){ while(i <= koniec_1 && j <= koniec_2){ if(tab2[i] <= tab2[j]){ tab[k++] = tab2[j++]; }else{ tab[k++] = tab2[i++]; } } while(i <= koniec_1){ tab[k++] = tab2[i++]; } while(j <= koniec_2){ tab[k++] = tab2[j++]; } } } void merge_sort(int start, int koniec){ if(start < koniec){ int m = (start + koniec) / 2; merge_sort(start, m); merge_sort(m + 1, koniec); merge(start, m, m + 1, koniec); } } int main(){ ios_base::sync_with_stdio(false); int z; cin >> z; while(z--){ int n, k; cin >> n >> k; tab = new int[n + 1]; tab2 = new int[n + 1]; for(int i = 1; i <= n; i++){ cin >> tab[i]; } merge_sort(1, n); for(int i = 1; i <= n; i++){ cout << tab[i] << " "; } cout << endl; delete [] tab; delete [] tab2; } return 0; }