// editor2
#include<stdio.h>
#include<string.h>

int main() {
    char bin[100];
    if (scanf("%s",bin) != 1){
        printf("Invalid Input");
        return 0;
    }
    int n=strlen(bin);
 if(n==0 ||n>32){
      printf("Invalid Input");
        return 0;
    }
for(inti=0;i<n;i++){
    if (bin[i] != '0' && bin[i] != '1'){
        printf("Invalid Input");
        return 0;
    }
}
    if (bin[0] ==0){
        long value=0;
        for (int i=0; i<n;i++){
            value=value*2 +(bin[i] - '0');
        }
        printf("%ld",value);
    }
 
        char inv[40];
        for (int i=0; i<n;i++){
            inv[i]=(bin[i] == 0)? '1' : '0';
    }
    int carry=1;
    for(int i=n-1;i>=0;i--){
        int bit=(inv[i]-'0')+carry;
        inv[i]=(bit%2) +'0';
        carry=bit/2;
    }
    long value =0;
    for (int i=0; i<n;i++){
        value = value * 2 + (inv[i] - '0');
}
printf("%ld",--value);
}
return 0;
}