func_code_string: #include <bits/stdc++.h>   using namespace std;   long long dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};   long long ddx[8] = {1, 1, 0, -1, -1, -1, 0, 1},             ddy[8] = {0, 1, 1, 1, 0, -1, -1, -1};   long long gcd(long long a, long long b) {     if (!a) return b;     return gcd(b % a, a);   }   long long lcm(long long a, long long b) { return (a * b) / gcd(a, b); }   unordered_map<char, long long> mp;   string s;   long long n;   bool fun(long long x) {     long long cnt = 0;     for (auto it : mp) {       long long val = it.second;       cnt += it.second / x;       if (it.second % x != 0) {         cnt++;       }     }     if (cnt <= n)       return true;     else       return false;   }   void test_case() {     cin >> s;     cin >> n;     for (auto it : s) {       mp[it]++;     }     if (mp.size() > n) {       cout << -1 <<   n ;       return;     }     long long l, r;     l = 1;     r = 1000;     long long ans = 1000;     while (l <= r) {       long long mid = l + (r - l) / 2;       if (fun(mid)) {         ans = min(ans, mid);         r = mid - 1;       } else {         l = mid + 1;       }     }     cout << ans <<   n ;     string st =   ;     for (auto it : mp) {       long long val = it.second;       long long cnt = 0;       cnt = it.second / ans;       if (it.second % ans != 0) {         cnt++;       }       while (cnt--) {         st += it.first;       }     }     while (st.size() != n) {       st +=  a ;     }     cout << st <<   n ;   }   signed main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     cout << fixed << setprecision(20);     long long t = 1;     while (t--) {       test_case();     }   }   