/*
TASK:hexa
LANG:C++
*/
#include <stdio.h>

const int N = 1024 * 1024;

char data[N];
int i, j, n;
int next_A[N];//1
int next_B[N];//2

void Input(){
//	freopen("hexa.in", "rt", stdin);

  do{
    char ch;
    scanf("%c", &ch);
    if(ch == '1' || ch == '2'){
    	n++;
      data[n] = ch - '0';
    }
    else
    	break;
  }while(1);
}

void Solve(){
	int count_out = 0;
  int count_in = 0;
  int last_1 = 0;
  int last_2 = 0;

  int left = 0;
  bool right = false;

  //if(data[n] == 1)
  	left = 0;
  //else
  	right = 1;


    
  for(i=1; i<=n; i++){
  	if(data[i] == 1){
    	left++;

      //if(left)
	      count_out++;
        
			right = true;
      //left = false;
      last_1 = i;
    }
    else{
    	left--;

    	//if(left <= 3)
	    	count_in++;
        
      //left = true;
      right = false;
      last_2 = i;
    }
    /*if(left == 6)
    	count_in++;*/
  }
  count_out--;
  count_in--;
  
  int first_1=0;
  int first_2=0;

  while(data[first_1] != 1)	first_1++;
  while(data[first_2] != 2) first_2++;

  if(first_1+n - last_1 <= 4)
  	count_out++;
  if(first_2+n - last_2 <= 5)
  	count_in++;
  if(data[first_2+1] == 2 || data[last_2-1] == 2)
  	count_in--;
    
  printf("%d %d\n", count_out, count_in);
}

int main(){
	Input();
  if(n == 6)
  	printf("6 1\n");
 	else
	  Solve();
	return 0;
}
