// editor2
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <math.h>
int main()
{
    bool ivb(const char*binaryString){
        if(strlen(binaryString)>32){
            return false;
        }
        for(int i=0;binaryString[i]!='\0';i++){
            if(binaryString[i]!='0' && binaryString[i]!='1'){
                return false;
            }
        }
        return true;
    }
    long long td(const char *binaryString){
        int l=strlen(binaryString);
    
            if(l==0){
            return 0;
        }
        if(binaryString[0]=='1'){
            char fb[33];
            strcpy(fb,binaryString);
            for (int i=0;i<l;i++){
                fb[i]=(fb[i]=='0')?'1':'0';
            }
            long long d=0;
            long long p=1;
            for(int i=l-1;i>=0;i--){
                d+=(fb[i]-'0')*p;
                p*=2;
            }
        }
        else{
            long long d=0;
            long long p=1;
            for(int i=l-1;i>=0;i--){
                d+=(binaryString[i]-'0')*p;
                p*=2;
            }
            return d;
        }
    }
    int main(){
        char input[33];
        scanf("%s",input);
        if(ivb(input)){
            long long result=td(input);
            printf("%lld\n",result);
        }
        else{
            printf("Invalid Input\n");
        }
    return 0;
}