#include <bits/stdc++.h>   using namespace std;   int n, m;   string s, t;   vector<char> vv;   int main() {     cin >> n >> m;     cin >> s;     for (int i = 0; i < n; i++) vv.push_back(s[i]);     sort(vv.begin(), vv.end());     if (((int)(s).size()) < m) {       t = s;       for (int i = ((int)(s).size()); i < m; i++) t += vv[0];       cout << t << endl;       return 0;     } else if (((int)(s).size()) == m) {       t = s;       int k = 1;       while (1) {         if (s[((int)(s).size()) - k] == vv[((int)(vv).size()) - 1]) {           t[((int)(s).size()) - k] = vv[0];           k++;           continue;         }         int bb = upper_bound((vv).begin(), (vv).end(), t[((int)(s).size()) - k]) -                  vv.begin();         t[((int)(s).size()) - k] = vv[bb];         break;       }       cout << t << endl;       return 0;     } else {       t = s.substr(0, m);       int k = 1;       while (1) {         if (s[m - k] == vv[((int)(vv).size()) - 1]) {           t[m - k] = vv[0];           k++;           continue;         }         int bb = upper_bound((vv).begin(), (vv).end(), t[m - k]) - vv.begin();         t[m - k] = vv[bb];         break;       }       cout << t << endl;       return 0;     }   }   