#include <bits/stdc++.h>
using namespace std;
char n[100000010];
int c1=0;
int c2=0;
int num[100000010];
int tn=0;
char op[100000010];
int to=0;
void eval(){
char o=op[to];to--;
int n1=num[tn];tn--;
if(num[tn]==100) return;
int n2=num[tn];tn--;
if(o=='|'){
if(n2==1){
c2++;
}
num[++tn]=(n2|n1);
}else{
if(n2==0){
c1++;
}
num[++tn]=(n2&n1);
}
}
int main(){
op[++to]=('@');
num[++tn]=100;
scanf("%s", n+1);
int s=strlen(n+1);
for(int i=1;i<=s;i++){
if(isdigit(n[i])){
num[++tn]=(n[i]-'0');
}else if(n[i]=='('){
if(op[to]!='@' && ((op[to]=='|' && num[tn]==1) || (op[to]=='&' && num[tn]==0))){
if(op[to]=='|'){
c2++;
}else{
c1++;
}
to--;
int cnt=1;
int j=i;
while(cnt){
j++;
if(n[j]=='('){
cnt++;
}
if(n[j]==')'){
cnt--;
}
}
i=j;
}else{
op[++to]=('(');
}
}else if(n[i]==')'){
while(op[to]!='@' && op[to]!='('){
eval();
}
to--;
}else{
while(op[to]!='@' && op[to]!='('){
if(n[i]=='|'){
eval();
}else if(op[to]=='&'){
eval();
}else{
break;
}
}
if(n[i]=='|' && num[tn]!=100 && num[tn]==1){
int j=i+1;
int cnt=0;
while(j<=s && (isdigit(n[j]) || n[j]=='&' || n[j]=='(') && cnt>=0){
j++;
if(n[j]=='(') cnt++;
else if(n[j]==')') cnt--;
}
c2++;
i=j-1;
}else{
op[++to]=(n[i]);
}
}
}
while(op[to]!='@'){
eval();
}
printf("%d\n%d %d", num[tn], c1, c2);
return 0;
}