#pragma GCC optimize(3, "Ofast", "unroll-loops", "-funroll-loops")
#include<bits/stdc++.h>
using namespace std;
using i32 = int;
using i64 = long long;
using i128 = __int128;
using u32 = unsigned int;
using u64 = unsigned long long;
using u128 = unsigned __int128;
void sort(unsigned *a, int n) {
for (int len = 1; len < n; len <<= 1) {
for (int i = 0; i + len < n; i += len << 1) {
int l = i, r = i + len, cnt = len;
while (r < i + (len << 1) && l < r) {
int p = l;
if (l + cnt < r) {
p += cnt;
}
if (a[p] < a[r]) {
swap(a[l], a[p]);
l += 1;
cnt -= 1;
} else {
swap(a[l], a[r]);
l += 1;
r += 1;
}
}
}
}
}