func_code_string: #include <bits/stdc++.h>   using namespace std;   const int MAXN = 100005;   long long a[MAXN], b[MAXN];   long long n, s;   bool check(long long k) {     for (int i = 1; i <= n; i++) b[i] = 0;     long long sum = s - 1, p = 2, q = 1, h = 1;     a[1] = b[1] = 1;     while (p <= n) {       q *= k, h++;       for (int i = 1; i <= q && p <= n; i++, p++) a[p] = h, sum -= h, b[h]++;     }     if (sum < 0) return 0;     p = n;     while (sum > 0) {       h++;       if (b[a[p]] == 1) --p;       long long t = min(sum, h - a[p]);       sum -= t, b[a[p]]--, a[p] += t, p--;     }     return 1;   }   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     cin >> n >> s;     if (s < 2 * n - 1 || s > n * (n + 1) / 2) {       cout <<  No  << endl;       exit(0);     }     int l = 1, r = n - 1;     while (l < r) {       int m = (l + r) >> 1;       if (check(m))         r = m;       else         l = m + 1;     }     check(l);     sort(a + 1, a + n + 1);     cout <<  Yes  << endl;     for (int p = 1, i = 2, cnt = 0; i <= n; i++) {       while (a[p] < a[i] - 1) p++, cnt = 0;       cout << p <<    ;       ++cnt;       if (cnt == l) cnt = 0, ++p;     }     cout << endl;     return 0;   }   