{ leiab n-bitise Gray koodi antud järjekorranumbriga elemendi }
function unrank(n, k : integer) : string;
var s : string; i : integer; u : boolean;
begin
   k := k - 1;
   s := '';
   u := true; { kas jooksvas positsioonis on kasvav või kahanev järjestus }
   for i := 1 to n do begin
      if (k shr (n - i) and 1 = 1) = u then begin
         s := s + '1';
      end else begin
         s := s + '0';
      end;
      if s[i] = '1' then begin
         u := not u;
      end;
   end;
   unrank := s;
end;

var n, k : integer;
begin
   readln(n);
   readln(k);
   writeln(unrank(n, k));
end.
