#include <bits/stdc++.h>
using namespace std;
int x, y;
stack<int> Num;
stack<char> Fu;
string s;
void jisuan() {
while (Fu.top() != '(') {
int yy = Num.top();
Num.pop();
int xx = Num.top();
Num.pop();
char c = Fu.top();
Fu.pop();
if (c == '&') {
Num.push(xx & yy);
} else {
Num.push(xx | yy);
}
}
}
int main() {
cin >> s;
s = " (" + s + ")";
for (int i = 1; i < s.size(); i++) {
if (s[i] == '0') {
Num.push(0);
} else if (s[i] == '1') {
Num.push(1);
} else if (s[i] == '&') {
if (Num.top() == 0) {
x++;
i++;
if (s[i] == '1' || s[i] == '0')
;
else {
int cnt = 1;
while (cnt || s[i] != ')') {
i++;
if (s[i] == '(') cnt++;
if (s[i] == ')') cnt--;
}
}
} else {
Fu.push('&');
}
} else if (s[i] == '|') {
jisuan();
if (Num.top() == 1) {
y++;
i++;
if (s[i] == '1' || s[i] == '0')
;
else {
int cnt = 1;
while (cnt || s[i] != ')') {
i++;
if (s[i] == '(') cnt++;
if (s[i] == ')') cnt--;
}
}
} else {
Fu.push('|');
}
} else if (s[i] == '(') {
Fu.push('(');
} else {
jisuan();
Fu.pop();
}
}
cout << Num.top() << '\n';
cout << x << ' ' << y << '\n';
return 0;
}