int main(){
	char S[1000001];
	int zero=0,one=0,q=0;
	int max=0,M=0;
	scanf("%s",S);
	if(S[0]=='0')zero++;
	else if(S[0]=='1')one++;
	else{
		if(S[1]!='0')zero++;
		else if(S[1]=='0')one++;
	}
	if(zero>one)max=zero-one;
	else max=one-zero;
	if(M<max)M=max;
	for(int i=1;i<strlen(S);i++){
		if(S[i]=='0')zero++;
		else if(S[i]=='1')one++;
		else{
			if(zero>one)one++;
			else zero++;
		}
		if(zero>one)max=zero-one;
		else max=one-zero;
		if(M<max)M=max;
	}
	printf("%d\n",M);
	return 0;
}