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

var n : integer; s : string;
begin
   readln(n);
   readln(s);
   writeln(rank(n, s));
end.
