#include <bits/stdc++.h>
#define in "lampa.in"
#define out "lampa.out"
#define MN 32
#define MM 3<<20
using namespace std;
int N, M, CF[MN];
char S[MM], Aux[MM], A[MM], B[MM], *p;
int main()
{
assert(freopen(in, "r", stdin));
assert(freopen(out,"w", stdout));
assert(scanf("%d%d%s", &N, &M, S+1));
CF[1] = CF[2] = 1;
for(int i = 3; i <= N; CF[i]=CF[i-2]+CF[i-1], ++i);
int Acf = CF[N-2], Bcf = CF[N-1];
for(int aln = 1; Acf*aln < M; ++aln)
{
if((M-Acf*aln) % Bcf == 0)
{
int bln = (M-Acf*aln)/Bcf;
/*
for(int j = 1; j <= i; ++j)
printf("%c", S[j]);
printf(" ");
for(int j = i+1; j <= i+bnd; ++j)
printf("%c", S[j]);
printf("\n");
*/
p = S+1;
if(N&1)
{
strncpy(A, p, aln), A[aln] = '\0';
p += aln;
strncpy(B, p, bln), B[bln] = '\0';
strcpy(Aux, A);
strcat(Aux, B);
}
else
{
strncpy(B, p, bln), B[bln] = '\0';
p += bln;
strncpy(A, p, aln), A[aln] = '\0';
strcpy(Aux, B);
strcat(Aux, A);
}
p = S+1;
if(!strncmp(p, Aux, aln+bln))
{
p += aln+bln;
if(strncmp(p, A, aln) && strncmp(p, B, bln)) continue;
if(strcmp(A, B)>0) swap(A, B);
assert(printf("%s\n%s\n", A, B));
return 0;
}
}
}
fclose(stdin), fclose(stdout);
return 0;
}