{
zadatak: proizvod
jezik: pascal
}
program proizvod;
const MaxN = 100000;
var A,B,C : array[0..MaxN] of integer;
    n,m,x,y,i,j,k : longint;
    z : int64;
    t : text;

procedure QuickSort(Lo, Hi: longint);
procedure Sort(l, r: longint);
var
  i, j, x, y: longint;
begin
  i := l; j := r; x := a[(l+r) DIV 2];
  repeat
    while a[i] < x do i := i + 1;
    while x < a[j] do j := j - 1;
    if i <= j then
    begin
      y := a[i]; a[i] := a[j]; a[j] := y;
      i := i + 1; j := j - 1;
    end;
  until i > j;
  if l < j then Sort(l, j);
  if i < r then Sort(i, r);
end;

begin
  Sort(Lo,Hi);
end;

procedure input;
var c : char;
    i : longint;
begin
 assign(t,'proizvod.in');
 reset(t);
 readln(t,N,M);
 for i:=1 to N do
  begin
   read(t,c);
   A[i]:=ord(c)-ord('0')
  end;
 close(t)
end;

procedure work;
var i,q : longint;
begin
 i:=n; j:=1; k:=1;
  while (a[i]=a[i-1]) and (i>=1) do
   begin
    b[j]:=a[i];
    c[k]:=a[i-1];
    i:=i-2; inc(j); inc(k);
   end;
  if i>0 then c[k]:=a[i]; inc(k); dec(i);
  if i>0 then b[j]:=a[i]; inc(j); dec(i);
  while i>0 do
   begin
    b[j]:=a[i]; inc(j); dec(i);
    c[k]:=a[i]; if i>0 then inc(k); dec(i)
   end
end;

procedure dance;
var i,r : longint;
begin
 x:=0; y:=0; r:=1;
 if (j-m)>0 then r:=j-m;
 for i:=r to j do
   if (j-i)>0 then
   begin
    x:=x*10; x:=x+b[i];
   end;
 r:=1;
 if (k-m)>0 then r:=k-m;
 for i:=r to k do
   if (k-i)>0 then
   begin
    y:=y*10; y:=y+c[i];
   end;
 z:=x*y
end;

procedure output;
var i : longint;
begin
 assign(t,'proizvod.out');
 rewrite(t);
 x:=1;
 for i:=1 to m do x:=x*10;
 z:=z mod x;
 x:=x div 10;
 while z<x do
  begin
   write(t,'0');
   x:=x div 10
  end;
  x:=1;
  for i:=1 to m do x:=x*10; z:=z mod x;
 write(t,z);
 close(t)
end;

begin
 input;
 QuickSort(1,N);
 work;
 dance;
 output;
end.
