#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <limits.h>
int main(){
    char binary[33];
    scanf("%32s", binary);
    int n =strlen(binary);
    for (int i=0; i< n; i++){
        if (binary[i] != '0'&& binary[i] != '1'){
            printf("invalid input");
            return 0;
            }
    }
     int is_negaitve =(binary[0] == '1');
     unsigned int value =0;
         for (int i =0; i < n; i++){
             value = (value<< 1) | (binary[i] - '0');
             }
             int result;
             if(is_negative) {
                 result =(int)(value -(1U<< n));
                }else {
                    result =(int) value;
                }
     printf("%d", result);
     return 0;
     }