#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<functional>
#include<vector>
#include<queue>
#include<stack>
#include<set>
#include<map>
using namespace std;
#define MOD 1000000007
#define f(i,n) for(int i=0;i<(int)(n);i++)
#define N 200010


int main() {
	char a[N];
	char b[N];
	f(i, N) {
		a[i] = 0;
		b[i] = 0;
	}
	int n, k;
	int x, y, z;
	int s, ans;
	bool v = true;
	ans = 0;
	scanf("%d %d", &n, &k);
	scanf("%s", a);
	f(i, n) {
		a[(2 * n - i - 1)] = a[i];
		b[i] = a[i];
	}
	for (int i = 1; i <= n; i++) {
		f(j, n) {
			if (a[i + j] < b[j]) {
				f(ii, n)b[ii] = a[i + ii];
				break;
			}
			else if (a[i + j] > b[j])break;
		}
	}
	k = min(k - 1, 20);
	f(kk, k) {
		x = 0;
		f(i, n) {
			if (b[i] == b[0])x++;
			else break;
		}
		for (int i = n - 1; i >= x; i--) {
			b[i] = b[i - x];
		}
		f(i, x)b[i] = b[0];

	}
	printf("%s\n", b);


	return 0;
}