{
ZADATAK: proizvod
JEZIK: pascal
}


  var a:array[1 .. 16] of integer;
      i,br1,br2,br3,j,max,max2,m,n,z:longint;
      d:char;
      s:string;
      t:boolean;
      code:integer;
      f,g:text;
  begin
   assign(f, 'proizvod.in');
   reset(f);
   assign(g, 'proizvod.out');
   rewrite(g);
   max:=10;
   readln(f,n,m);
   for i:=1 to 2*m do
   a[i]:=10;
   for i:=1 to n do
   begin
    read(f,d);
    s:=''+d;
    val(s,j,code);
    if j<max then
    begin
     t:=true;
     max2:=-1;
     for z:= 1 to 2*m do
     begin
      if ((a[z]=max) and (t=true)) then
      begin
       a[z]:=j;
       t:=false;
      end;
      if a[z]>max2 then max2:=a[z];
     end;
     if max2<>max then max:=max2;
    end;
   end;
   for i:=1 to 2*m-1 do
   for j:=i to 2*m do
   if (a[i]>a[j]) then
   begin
    max:=a[i];
    a[i]:=a[j];
    a[j]:=max;
   end;


   t:=true;
   br1:=0;
   br2:=0;
   max:=1;
   max2:=1;
   for i:=2*m downto 1 do
   if a[i]<>10 then
   begin
    if (max=1) then
      br1:=(max2*br1)+a[i]
    else br2:=(br2*max2)+a[i];
      if t=true then
      begin
       t:=false;
       max:=max*(-1);
      end
      else if t=false then
      begin
      t:=true;
      max2:=max2*10;
      end
   end;


   br3:=br1*br2;

  max:=br3;
  j:=0;
  max2:=1;
  repeat
  max:=max div 10;
  j:=j+1;
  until max=0;
  if j>m then
  begin
  for i:=1 to m do
   max2:=max2*10;
   br3:=br3 mod max2;
  end
  else
  if j<m then
  for i:=j+1 to m do
  write(g,'0');
  write(g,br3);
  close(f);
  close(g);
 end.