var
  byte1, dec, n, plus, j: integer;

begin
  n := 0;       //переменная n хранит номер разряда.
  dec := 0;     //переменная dec - искомое десятичное число.
  plus := 1;    //в переменной plus будем считать степени двойки и прибавлять к dec.
  read(byte1);  
  while byte1 > 0 do          //Убираем последнюю цифру двоичеого числа пока оно не станет нулем.
  begin
    if(byte1 mod 10 = 1) then //Если очередная цифра двоичного числа-еденица , то
    begin
      for j := 1 to n do      
        plus := plus * 2;     //считаем степень двойки n разряда числа.
      dec := dec + plus;      //Прибавляем его к dec
    end;  
    plus:=1;
    n := n + 1;               //переходим к следующему разряду.
    byte1 := byte1 div 10;    //Убираем последнюю цифру двоичеого числа.
  end;
  write(dec);
end.