#include<stdio.h>
#include<string.h>
#include<cytype.h>
#include<math.h>
int main(){
char binary[33];
scanf("32s",binary);
 int len = strlen(binary);
 for (int i=0;i<len;i++){
     if(binary[i] !='0'&& binary[i] !='1'){
         printf("Inavalid Input\n");
         return 0;
     }
 }
 long long decimal =0;
 if(binary[0]=='1' && len == 32){
     
     long long unsingned_val=0;
     for(int i = 0; i<len;i++){
         if(binary[i]=='1'){
             unsingned_val+=(1ll<<(len-1-i));
         }
     }
     decimal=unsigned_val-(1ll<<len);
 }else{
     for(int i=0;i<len;i++){
         if(binary[i]=='1'){
             decimal+=(1ll<<(len-1-i));
             
         }
     }
 }
 printf("%lld\n",decimal);
 return 0;
 

 }