#include <iostream>
#include <string>
using namespace std;
int solution(string str);
int main() {
cin.tie(NULL);
ios::sync_with_stdio(false);
string str;
getline(cin, str);
cout << solution(str);
return 0;
}
int solution(string str)
{
int ret = 0;
int temp = 1;
string c_stc[100]; int c_top = -1;
for (int i = 0; i < str.length(); i++) {
if (str[i] == '(')
{
c_stc[++c_top] = str[i];
}
if (str[i] == '[') {
c_stc[++c_top] = str[i];
}
if (str[i] == ')' && c_top > -1) {
if (c_stc[c_top] == "(")
c_stc[c_top] = "2";
else if (c_stc[c_top] != "(" && c_stc[c_top] != "[") {//숫자가 있을 때
int top = stoi(c_stc[c_top]);
int add = 0;
while (c_stc[c_top - 1] != "(" && c_stc[c_top - 1] != "[") {
top += stoi(c_stc[--c_top]);
}
if (c_stc[c_top - 1] == "(")
c_stc[--c_top] = to_string(top * 2);
else
return 0;
}
}
if (str[i] == ']' && c_top > -1) {
if (c_stc[c_top] == "[")
c_stc[c_top] = "3";
else if (c_stc[c_top] != "(" && c_stc[c_top] != "[") {//숫자가 있을 때
int top = stoi(c_stc[c_top]);
int add = 0;
while (c_stc[c_top - 1] != "(" && c_stc[c_top - 1] != "[") {
top += stoi(c_stc[--c_top]);
}
if (c_stc[c_top - 1] == "[")
c_stc[--c_top] = to_string(top * 3);
else
return 0;
}
}
}
for (int i = 0; i <= c_top; i++) {
if (c_stc[i] == "[" || c_stc[i] == "(") return 0;
else ret += stoi(c_stc[i]);
}
return ret;
}