#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define MOD 1000000007
#define pp pop_back
#define MAXN   100001
#define mp make_pair
#define endl '\n'
#define ff first
#define ss second
#define mapcl map<char,ll>
#define mapll map<ll,ll>
#define cmp complex<double>
#define pi 3.141592653589793238462643383279502884197169399375105820974944592307816406286 
#define inf LLONG_MAX
void fast(){ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);}
typedef long long ll;
int main()
{
	ll n,k;
	cin>>n>>k;
	string s;
	cin>>s;
	string ans;
	mapcl m;
	for(ll i=0;i<n;i++)
	m[s[i]]=1;
	for(ll i=0;i<k;i++)
	ans+=s[i];
	char sm='z';
	for(char i='a';i<='z';i++)
	{
		if(m[i]==1)
		{
			sm=i;
			break;
		}
	}
	if(k>n)
	{
		cout<<s;
		ll rem=k-n;
		while(rem--)
		cout<<sm;
		return 0;
	}
	ll st;
	for(ll i=k-1;i>=0;i--)
	{
		ll flag=0;
		char x=ans[i];
		x++;
		for(char X=x;X<='z';X++)
		{
			if(m[X]==1)
			{
				flag=1;
				st=i+1;
				ans[i]=X;
				break;
			}
		}
		if(flag==1)
		break;
	}
	for(ll i=st;i<k;i++)
	{
		ans[i]=sm;
	}
	cout<<ans<<endl;
}