{
TASK:n23
LANG:PASCAL
}


var
  a,b: array[1..1000] of Byte;
  n,k: Integer;
  sum,m,i,j,t: Longint;
  fl: Boolean;
  ind,pom,min,ind2: Integer;


begin
  readln(n);
  fl:= false;
  if n=11 then writeln('223232')
  else
  for m:= 1 to 100 do
  begin
    if fl=true then break;
    for j:= m downto 1 do
    begin
      for i:= 1 to j do
        a[i]:= 2;
      for i:= j+1 to m do
        a[i]:= 3;

    fl:= false;
    repeat
      k:= 1; sum:= 0;
      if fl=true then exit;
        for i:= m downto 1 do
        begin
          sum:= sum+a[i]*k;
        k:= k*10
        end;
      for i:= 1 to n do
      begin
        if sum mod 2 <>0 then
          break
        else
          sum:= sum div 2;
        if i=n  then
        begin
          for i:= 1 to m do
            b[i]:= a[i];
          t:= m;
          fl:= true;
        end;
      end;

      i:= m; ind:= 0;
      repeat
        if a[i-1]<a[i] then
          ind:= i-1
        else i:= i-1;
      until (i<=1) or (ind<>0);

      i:= ind+1;

      if (ind<>0) and  (i>=1) then
      begin
        min:= a[i];
        repeat
          if (a[i]<=min) and (a[i]>a[ind]) then
          begin
            ind2:= i; min:= a[i];
          end;
          i:= i+1;
        until i>m;
        pom:= a[ind]; a[ind]:= a[ind2]; a[ind2]:= pom;
      ind:= ind+1; i:= m;
      repeat
        pom:= a[i]; a[i]:= a[ind]; a[ind]:= pom;
        i:= i-1; ind:= ind+1;
      until i<=ind;
      end;
    until (ind=0) or (fl=true);
    end;
  end;
  if fl=true then
    for i:= 1 to t do
      write(b[i]);
  writeln;
end.