var
 s,t,w,n,max,j,i:longint;
 x:char;
 a:array[0..10000]of longint;

begin
 readln(s,t,w);
 for i:=w downto 1 do
  begin
   read(x);
   a[i]:=ord(x)-96;
  end;
 n:=0;max:=0;a[0]:=t+1;
 repeat
   i:=1;
   inc(n);
   while ((a[i]=t)or(a[i]=a[i-1]-1))and(i<=t) do
    inc(i);
   if i>t then max:=1;
   inc(a[i]);
   for j:=i-1 downto 1 do
    a[j]:=a[j+1]+1;
   if max=0 then for j:=w downto 1 do
                  write(chr(a[j]+96));
   writeln;
 until n=5;
end.


/**************************************************************
	Problem: 2262
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/