{
TASK:n23
LANG:PASCAL
}
program n23;
type
  TN = 1..10000;

var
  Number, M, Result: LongInt;

function Power(N: TN): LongInt;
var
  I: Integer;
  R: LongInt;
begin
  R := 1;
  for I := 1 to N do
    R := R*2;
  Power := R;
end;

function Check(K: LongInt): Boolean;
var
  buf: Integer;
  P: LongInt;
begin
  Check := True;
  P := K;
  while P <> 0 do
  begin
    buf := P mod 10;
    if (buf <> 2) and (buf <> 3) then
      Check := False;
    P := P div 10;
  end;
end;

function Find: LongInt;
var
  I: Integer;
begin
  Find := 0;
  I := 1;
  while not Check(I*M) do
    I := I+1;

  {for I := 1 to 120 do
    if Check(I*M) then
    begin
      Find := I*M;
      WriteLn(I);
      Break;
    end;
  end;}
  Find := I*M;
end;

begin
  Read(Number);
  M := Round(Power(Number));
  Result := Find;
  if Result <> 0 then
    WriteLn(Result) else
    WriteLn('NO');
  {WriteLn(Power(10000));}
  ReadLn;
  ReadLn;
end.