#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 1000000
//リストのノード（スタック内の各データ）の定義
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;
}
 
//スタックからデータを取り出す
char pop(node first){
    char elem;
    node *tmp = *first;
    if(tmp == NULL) exit(1);
    elem = tmp->elem;
    *first = tmp->next;
    //取り出したノードのメモリを解放
    free(tmp);
    return elem;
}
 
int main(void){
    char cube[SIZE];
    char under_cube;
    int i,count = 0,answer = 0;
    scanf("%s",cube);
    //最初のノードの指す先
    node first = NULL;
    for ( i = 0; i < strlen(cube); i++)
    {
        if (count == 0)
        {
            push(&first,cube[i]);
            count += 1;
        }
        else
        {
            under_cube = pop(&first);
            if (under_cube == cube[i])
            {
                push(&first,under_cube);
                push(&first,cube[i]);
                count += 1;
            }
            else
            {
                answer += 2;
                count -= 1;
            }

        }

    }
    printf("%d\n",answer);
    return 0;
}