Anfisa the monkey learns to type. She is yet unfamiliar with the "space" key and can only type in lower-case Latin letters. Having typed for a fairly long line, Anfisa understood that it would be great to divide what she has written into *k* lines not shorter than *a* and not longer than *b*, for the text to resemble human speech more. Help Anfisa.
The first line contains three integers *k*, *a* and *b* (1 ≤ *k* ≤ 200, 1 ≤ *a* ≤ *b* ≤ 200). The second line contains a sequence of lowercase Latin letters — the text typed by Anfisa. It is guaranteed that the given line is not empty and its length does not exceed 200 symbols.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll k,a,b;
string s;
ll n;
vector<string> op {};
bool dp(int i,int c){
   if(c>k || i>n-1){
      return(false);
   }
   if(c==k && i>n-1){
      return(true);
   }
   for(int j=i+a;j<i+b+1;j++){
      if(dp(j,c+1)){
          if(j==n-1) op.push_back(s.substr(i,j-i+1)); 
         else op.push_back(s.substr(i,j-i)) ;
         
         return(true);
      }
   }
    
}


int main(){
   
   cin>>k>>a>>b;
   cin>>s;
   n=s.size();
   if(n<k*a || n>k*b) cout<<"No solution";
   else{
      dp(0,0);
      for (int i = op.size()-1; i > -1; i--)
        cout << op[i] << "\n";
   }
   }