#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
    char binary_string[33];
    printf("Enter a binary string (up to 32 bits): ");
    scanf("%s", binary_string);
    
    int len = strlen(binary_string);
    for (int i = 0; i < len; i++) {
        if (binary_string[i] !='0' && binary_string[i] != '1') {
            printf("Invalid Input\n");
            return 1;
        }
    }
    if (len > 32) {
        printf("Invalid Input\n");
        return 1;
    }
    long long decimal_value = 0;
    int power = 0;
    int i;
    for (i = len - 1; i>=0; i--) {
        if (binary_string[i] =='1') {
            decimal_value += (long long)pow(2, power);
        }
        power++;
    }
    if (binary_string[0] == '1') {
        decimal_value -= (long long)pow(2, len);
    }
    printf ("The signed decimal value is: %lld\n", decimal_value);
    return 0;
}    
    
}