func_code_string: #include <bits/stdc++.h>   using namespace std;   int Int() {     int x;     scanf( %d , &x);     return x;   }   long long Long() {     long long x;     scanf( %lld , &x);     return x;   }   void err(istream_iterator<string> it) { cout << endl; }   template <typename T, typename... Args>   void err(istream_iterator<string> it, T a, Args... args) {     cerr << *it <<   =   << a <<    ;     err(++it, args...);   }   const int N = (int)2e5 + 5;   const int maxN = (int)1e6 + 6;   const long long Mod = (long long)1e9 + 7;   vector<int> box;   int len, k, a, b;   bool vis[201][201];   string s;   void call(int cur, int last) {     if (cur > k) return;     if (last == (int)s.size()) {       if (cur != k) return;       int cnt = 0;       for (int i : box) {         for (int j = cnt; j < i + cnt; ++j) cout << s[j];         cout <<   n ;         cnt += i;       }       exit(0);     }     if (vis[cur][last]) return;     vis[cur][last] = 1;     for (int i = a; i <= b; ++i) {       if (last + i <= (int)s.size()) {         box.push_back(i);         call(cur + 1, i + last);         box.pop_back();       }     }   }   int main() {     int test = 1, tc = 0;     while (test--) {       cin >> k >> a >> b;       cin >> s;       for (int i = a; i <= b; ++i) {         if (i <= (int)s.size()) {           box.push_back(i);           call(1, i);           box.pop_back();         }       }       puts( No solution );     }     return 0;   }   