{
ZADATAK: proizvod
JEZIK: pascal
}
Program Proizvod;
var
	f:text;
	i,n,n1,m,l1,l2:longint;
	c:char;
	iom,tip:byte;
	s:string;
	a:array[1..100000]of byte;
	br1,br2:array[1..50000]of byte;
	broj,k,broj1,broj2:int64;

function min3(i:longint):longint;
begin
	if(2*i<n1)and(a[2*i+1]<=a[2*i])and(a[2*i+1]<a[i])then min3:=2*i+1 else
	if(2*i<=n1)and(a[2*i]<a[i])then min3:=2*i else min3:=i;
end;
procedure pad(i:longint);
var
	pom:longint;
	iom:byte;
begin
	pom:=min3(i);
	while pom<>i do
	begin
		iom:=a[i];a[i]:=a[pom];a[pom]:=iom;
		i:=pom; pom:=min3(i);
	end;
end;

begin
	assign(f,'proizvod.in');reset(f);
	readln(f,n,m);
	for i:=1 to n do
	begin
		read(f,c);
		a[i]:=ord(c)-ord('0');
	end;
	close(f);

	n1:=n;
	for i:=n div 2 downto 1 do
		pad(i);
	for n1:=n-1 downto 1 do
	begin
		iom:=a[1];a[1]:=a[n1+1];a[n1+1]:=iom;
		pad(1);
	end;

	tip:=1; l1:=0; l2:=0;
	for i:=1 to n div 2 do
		if tip=1 then
		begin
			inc(l1); inc(l2);
			br1[l1]:=a[2*i-1];
			br2[l2]:=a[2*i];
			if br1[l1]>br2[l2] then
				tip:=2;
		end else
		begin
			inc(l1); inc(l2);
			br1[l1]:=a[2*i];
			br2[l2]:=a[2*i-1];
		end;

	if n mod 2=1 then
	begin
		inc(l2);
		br2[l2]:=a[n];
	end;

	k:=1;
	broj1:=br1[l1];
	broj2:=br2[l2];
	for i:=2 to m do
	begin
		k:=k*10;
		if l1-i+1>0 then
			broj1:=broj1+k*br1[l1-i+1];
		if l2-i+1>0 then
			broj2:=broj2+k*br2[l2-i+1];
	end;
	k:=k*10;
	broj:=broj1*broj2;

	s:='';
	for i:=1 to m do
	begin
		s:=chr(broj mod 10+ord('0'))+s;
		broj:=broj div 10;
	end;

	assign(f,'proizvod.out');rewrite(f);
	write(f,s);
	close(f);
end.
