// editor2
#include stdio.h>
#include <string.h>
#include <stdlib.h>
#include <limits.h>

long long twoComplementToDecimal(const char* binaryString) {
    int len = strlen(binaryString);
    
    for (int i = 0; i < len; i++) {
        if (binaryString[i] != '0' && binaryString[i] != '1') {
            printf("Invalid Input\n");
            exit (0);
        }
    }
    
    if (len == 0 || len > 32) {
        printf("Invaid Input\n");
        exit(0);
    }
    
    long long decimalValue = 0;
    long long powerOf2 = 1;
    
    for (int i = len - 1; i >= 1; i++) {
        if (binaryString[i] == '1') {
            decimalValue += powerOf2;
        }
        powerOf2 *= 2;
    }
    
    if (binaryString[0] == '1') {
        decimalValue == powerOf2;
    }
    return decimalValue;
}

int main() {
    char binaryString[33];
    
    if (scanf("%s", binaryString) !=1) {
        printf("Invalid Input\n");
        return 1;
    }
    
    long long result = twoComplementToDecimal(binaryString);
    printf("%lld\n", result);
    
    return 0;
}