#define _CRT_SECURE_NO_DEPRECATE #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define all(v) v.begin(),v.end() using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; const ld epsylon = 1e-9; typedef unsigned int ui; inline long double get_time(){ return (long double)clock()/CLOCKS_PER_SEC; }; string lang; map lng; map lng1; int n, k; int sz; string duma; void nextt(string & duma) { for (int i = duma.size() - 1; i >= 0; --i) { if (lng[duma[i]] < sz) { duma[i] = lng1[lng[duma[i]]+1]; return; } else { while (lng[duma[i]] >= sz) i--; duma[i] = lng1[lng[duma[i]]+1]; for (int k = i; k < duma.size(); ++k) duma[k] = duma[i]; return; } } } int main() { freopen("nthword.in","r",stdin); freopen("nthword.out","w",stdout); //program cin >> lang; sz = lang.size() - 1; cin >> k >> n; for (int i = 0; i < k - 1; ++i) duma.push_back(lang[0]); duma.push_back(lang[1]); for (int i = 0; i < lang.size(); ++i) lng.insert(make_pair(lang[i],i)), lng1.insert(make_pair(i, lang[i])); for (int i = 0; i < n; ++i) { nextt(duma); } cout << duma << endl; //end program return 0; }