#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 100000 + 10;
int n, k;
char s[MAX_N], t[MAX_N];
set<char> S;
char find(int c) {
  set<char>::iterator it;
  for (it = S.begin(); it != S.end(); it++) {
    if (*it == c) break;
  }
  return *(++it);
}
int main() {
  scanf("%d %d", &n, &k);
  scanf("%s", s);
  for (int i = 0; i < n; i++) {
    S.insert(s[i]);
  }
  char f = *S.begin(), e = *S.rbegin();
  if (k > n) {
    int i;
    for (i = 0; i < n; i++) {
      t[i] = s[i];
    }
    while (i < k) {
      t[i] = f;
      i++;
    }
    t[k] = '\0';
  } else {
    t[k] = '\0';
    for (int i = 0; i < k; i++) {
      t[i] = s[i];
    }
    for (int i = k - 1; i >= 0; i--) {
      if (t[i] == e) {
        t[i] = f;
      } else {
        t[i] = find(t[i]);
        break;
      }
    }
  }
  printf("%s\n", t);
  return 0;
}
