#include<cstdio>
#include<algorithm>
char buf[1000010];
int main() {
  scanf("%s", buf);
  int a0 = 0, a1 = 1, b0 = 0, b1 = -1;
  int c0 = a0-b0, c1 = a0-b1, c2 = a1-b0, c3 = a1-b1;
  for(char *p = buf; *p; p++) {
    if(*p=='0')      { --a0; --a1; --b0; --b1; }
    else if(*p=='1') { ++a0; ++a1; ++b0; ++b1; }
    else             { --a0; --a1; ++b0; ++b1; }
    if(a0 < 0) a0 += 2;
    if(a1 < 0) a1 += 2;
    if(b0 > 0) b0 -= 2;
    if(b1 > 0) b1 -= 2;
    c0 = std::max(c0, a0-b0);
    c1 = std::max(c1, a0-b1);
    c2 = std::max(c2, a1-b0);
    c3 = std::max(c3, a1-b1);
  }
  printf("%d\n", std::min(std::min(c0, c1), std::min(c2, c3)));
  return 0;
}