func_code_string: #include <bits/stdc++.h>   using namespace std;   long long sqr(long long x) { return x * x; }   int mysqrt(long long x) {     int l = 0, r = 1e9 + 1;     while (r - l > 1) {       int m = (l + r) / 2;       if (m * (long long)m <= x)         l = m;       else         r = m;     }     return l;   }   mt19937 rnd(1227);   mt19937_64 rndll(12365);   long long AR = 19, BR = 13, CR = 23, XR = 228, YR = 322, MODR = 1e9 + 993;   long long myrand() {     long long ZR = (XR * AR + YR * BR + CR) % MODR;     XR = YR;     YR = ZR;     return ZR;   }   int gcd(int a, int b) { return a ? gcd(b % a, a) : b; }   int gcdex(int a, int b, int &x, int &y) {     if (a == 0) {       x = 0;       y = 1;       return b;     }     int x1, y1;     int ret = gcdex(b % a, a, x1, y1);     x = y1 - (b / a) * x1;     y = x1;     return ret;   }   const int Mod = 1e9 + 7;   int Bpow(int x, int y) {     int ret = 1;     int w = x;     while (y) {       if (y & 1) ret = (ret * (long long)w) % Mod;       w = (w * (long long)w) % Mod;       y >>= 1;     }     return ret;   }   int Bdiv(int x) {     int a, b;     gcdex(x, Mod, a, b);     if (a < 0) a += Mod;     return a;   }   int Bdiv(int x, int y) { return (x * (long long)Bpow(y, Mod - 2)) % Mod; }   void setmin(int &x, int y) { x = min(x, y); }   void setmax(int &x, int y) { x = max(x, y); }   void setmin(long long &x, long long y) { x = min(x, y); }   void setmax(long long &x, long long y) { x = max(x, y); }   const long long llinf = 2e18 + 100;   const double eps = 1e-9;   const int maxn = 1e5 + 100, maxw = 1e6 + 100, inf = 2e9 + 100, sq = 300,             mod = 1e9 + 7, LG = 17;   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int n;     cin >> n;     int w = 1;     for (int i = 2; i <= n; i++)       if (i + (n + i - 1) / i < w + (n + w - 1) / w) w = i;     for (int i = n; i > 0; i -= w) {       for (int j = max(1, i - w + 1); j <= i; j++) cout << j <<    ;     }   }   