#include <bits/stdc++.h>
using namespace std;
int main() {
  string ss;
  cin >> ss;
  long long memo = 0, ans, min = 0, max = 0;
  for (long long ii = 0; ii < ss.length(); ii++) {
    if (ss[ii] == '1') {
      memo++;
    } else if (ss[ii] == '0') {
      memo--;
    } else {
      if (memo < 0) {
        memo++;
        ss[ii] = '1';
      } else if (memo > 0) {
        memo--;
        ss[ii] = '0';
      } else if (abs(max - memo) > abs(min - memo)) {
        memo++;
        ss[ii] = '1';
      } else if (abs(max - memo) < abs(min - memo)) {
        memo--;
        ss[ii] = '0';
      }
    }
  }
  for (long long ii = ss.length() - 1; ii >= 0; ii--) {
    if (ss[ii] == '1') {
      memo++;
    } else if (ss[ii] == '0') {
      memo--;
    } else {
      if (memo < 0) {
        memo++;
        ss[ii] = '1';
      } else if (memo > 0) {
        memo--;
        ss[ii] = '0';
      } else if (abs(max - memo) > abs(min - memo)) {
        memo++;
        ss[ii] = '1';
      } else if (abs(max - memo) < abs(min - memo)) {
        memo--;
        ss[ii] = '0';
      }
    }
    if (memo > max) {
      max = memo;
    }
    if (memo < min) {
      min = memo;
    }
  }
  cout << abs(max - min) << endl;
  return 0;
}
