/*
    ex9_2
    takaoga
 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 100000
typedef struct cubearray{
    char cube;
    struct cubearray *next;
} cubearray;



void push(cubearray **first, char cube){
    //追加する分の領域を確保
    cubearray *new = (cubearray *)calloc(1, sizeof(cubearray));
    if(new == NULL) exit(1);
    new->cube = cube;
    new->next = *first;
    *first = new;
}

//スタックからデータを取り出す
void pop(cubearray **first){
    char elem;
    cubearray *tmp;
    tmp = *first;
    if(tmp == NULL) exit(1);
    elem = tmp->cube;
    *first = tmp->next;
    free(tmp);
}

int main(void){
    int deletecount = 0, i = 0; //deletecontは消されたキューブの数を数える。iは配列の要素を示すために使う。
    char inputtext[SIZE];
    cubearray *first = NULL;//初期化
    scanf("%s", inputtext);
    while (inputtext[i] != '\0'){
        push(&first, inputtext[i]);
        if(first != NULL && first->next != NULL && strcmp(&first->cube, &first->next->cube) != 0){
            pop(&first);
            pop(&first);
            deletecount = deletecount + 2;
            printf("動いた\n");
        }
        i++;
    }
    printf("%d\n", deletecount);
    return 0;
}