/* ex 9_2
   nknm */
#include <stdio.h>
#include <stdlib.h>
#define SIZE 100001

//リストのノード（スタック内の各データ）の定義
typedef struct node{
    char elem;
    struct node *next;
} node;

//スタックにデータを追加
void push(node *first, char elem){
    //追加する分の領域を確保
    node *new = calloc(1, sizeof(node));
    if(new == NULL){
        exit(1);
    }
    new->elem = elem;
    new->next = first;
    first = new;
}


void delete_node(node *first){
  // deletion
    node *tmp = first;
    
    first = first->next;
    free(tmp);

}


int main(void){
    char imput[SIZE];
    int i, count = 0;
    scanf("%s", imput);
    //最初のノードの指す先
    node *first = NULL;
    //スタックにノードを追加
    for(i = 0; imput[i] != '\0'; i++){
        if(imput[i] == '0'){
            push(first, '0');
        }else if(imput[i] == '1'){
            push(first, '1');
        }    
        if((first->elem != (first->next)->elem) && first->next != NULL){
            delete_node(first);
            delete_node(first);
            count += 2;
        }   
    }

    printf("%d\n", count);

    return 0;
}