{
ZADATAK: proizvod
JEZIK: pascal
}

type broj=array[0..9]of longint;

function  manje(a,b:broj):boolean;
 var i,sa,sb:longint;
     p:boolean;
begin
 sa:=0;
 sb:=0;
 for i:=0 to 9 do
  begin
   sa:=sa+a[i];
   sb:=sb+b[i];
  end;
 if (sa<sb)
  then p:=true
  else if (sa>sb)
        then p:=false
        else begin
        p:=false;
        i:=9;
        while ((i>=0) and (not(p))) do
         if (a[i]<b[i])
          then begin p:=true; break;end
          else i:=i-1;
       end;
 manje:=p;
end;

var k,oc,mr:broj;
    n,m,i,s,ocb,mrb,oci,mri:longint;
    c:char;
    t:int64;
    f,g:text;

begin
 assign(f,'proizvod.in');
 reset(f);
 readln(f,n,m);
 for i:=1 to n do
  begin
   read(f,c);
   k[ord(c)-ord('0')]:=k[ord(c)-ord('0')]+1;
  end;
 close(f);
 i:=9;
 while (i>=0) do
  begin
   while (k[i]>0) do
    if manje(mr,oc)
     then begin
           mr[i]:=mr[i]+1;
           k[i]:=k[i]-1;
          end
     else begin
           oc[i]:=oc[i]+1;
           k[i]:=k[i]-1;
          end;
        i:=i-1;
  end;
 s:=1;
 ocb:=0;
 mrb:=0;
 oci:=0;
 mri:=0;
 for i:=1 to m do
  begin
   while ((oc[oci]=0) and (oci<=9)) do
    oci:=oci+1;
   while ((mr[mri]=0) and (mri<=9)) do
    mri:=mri+1;
   if (oci<=9)
    then  begin ocb:=ocb+s*oci; oc[oci]:=oc[oci]-1; end;
   if (mri<=9)
    then  begin mrb:=mrb+s*mri; mr[mri]:=mr[mri]-1; end;
   s:=s*10;
  end;
 t:=(ocb*mrb) mod s;
 assign(g,'proizvod.out');
rewrite(g);
while (10*t<s) do
  begin
   s:=s div 10;
   write(g,'0');
  end;
 writeln(g,t);
 close(g);
end.
