program test6 (input,output);

var a : array [0..21] of real ;
var nx : integer ;
var i : integer ;

procedure fillarray(x: array [0..21] of real ; n : integer );
begin
  n:=0;
  read(x[n]);
  while ((n<19) and (x[n]>0)) do
    begin
      n:=n+1;
      read(x[n])
    end
end;

procedure merge(from, mid, to : integer );
var holdres : array [0..21] of real ;
var holdval : real ;
var i, fp, tp : integer ;
begin
  fp:=from;
  tp:=mid+1;
  i:=0;

  holdval:=a[to+1];
  a[to+1]:=a[mid]+1;
  if (a[to]>a[to+1]) then a[to+1]:=a[to]+1;

  while (i<(to-from+1)) do
    begin
      if (a[tp]<=a[fp]) then
        begin
          holdres[i]:=a[tp];
          a[tp]:=a[to+1];
          tp:=tp+1
        end
      else
        begin
          holdres[i]:=a[fp];
          fp:=fp+1
        end;
      i:=i+1
    end;
  i:=0;
  fp:=from;
  while (i<to-from+1) do
    begin
      a[fp]:=holdres[i];
      fp:=fp+1;
      i:=i+1
    end;
  a[to+1]:=holdval
end;

procedure sort(from, to : integer );
var mid: integer ;
begin
  if from<>to then
    begin
      mid:=(from + to) / 2;
      sort(from,mid);
      sort(mid+1,to);
      merge(from,mid,to)
    end
end;
          
begin
  fillarray (a,nx);
  i:=0;
  while (i<nx) do
    begin
      write(a[i]);
      i:=i+1
    end;

  write(nx);

  i:=0;
  sort (i,nx-1);
  i:=0;
  while (i<nx) do
    begin
      write(a[i]);
      i:=i+1
    end
end.
  
