#include <bits/stdc++.h>   using namespace std;   const long long INF = 1e9 + 5, NMAX = 2e5 + 5, MOD = 998244353, N = 1e9 + 5,                   LOG = 25;   const long double EPS = 1e-8, pi = 3.14159265358979323846;   vector<long long> res;   bool first(long long k, vector<long long> &v) {     long long index = k;     res.clear();     vector<long long> ost;     for (long long i = 0; i < k && index < v.size(); ++i, ++index) {       while (index < v.size() && v[index] <= v[i]) ost.push_back(v[index++]);       if (index == v.size()) return false;       res.push_back(v[index]);       res.push_back(v[i]);     }     while (index < v.size() && v[index] <= res.back()) ost.push_back(v[index++]);     if (index == v.size()) return false;     while (index < v.size()) res.push_back(v[index++]);     for (long long o : ost) res.push_back(o);     return true;   }   signed solve() {     long long n;     cin >> n;     vector<long long> v(n);     for (long long i = 0; i < n; ++i) cin >> v[i];     if (n < 3) {       cout <<  0 n ;       for (long long x : v) cout << x <<    ;       return 0;     }     sort(v.begin(), v.end());     long long l = 0, r = n - 2;     while (l + 1 < r) {       long long m = (l + r) / 2;       if (first(m, v)) {         l = m;       } else {         r = m - 1;       }     }     if (first(r, v)) {       cout << r <<   n ;       for (long long x : res) cout << x <<    ;     } else {       first(l, v);       cout << l <<   n ;       for (long long x : res) cout << x <<    ;     }   }   signed main() {     {       ios_base::sync_with_stdio(0);       cin.tie(0);       cout.tie(0);     }     long long t = 1;     while (t-- > 0) {       solve();     }   }   