#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<limits.h>
#include<float.h>

#define N 100001

typedef struct _Stack {
	bool isZero[N];
	int num;
} Stack;

void push(Stack *s, bool isZero){
	s->isZero[s->num++] = isZero;
}

bool pop(Stack *s){
	return s->isZero[--s->num];
}

bool top(Stack *s){
	return s->isZero[s->num-1];
}

bool isEmpty(Stack *s){
	return s->num == 0;
}

int main(){
	char c[N];
	int ans = 0;
	Stack s;
	s.num = 0;
	scanf("%s\n", c);
	while(*c){
		bool isZero;
		if(*c == '0') isZero = true;
		else isZero = false;
		if(isEmpty(&s) || top(&s) == isZero) push(&s, isZero);
		else {
			pop(&s);
			ans +=2;
		}
		c++;
	}
	printf("%d", ans);
	return 0;
}


