#include<string>
#include<bits/stdc++.h>
using namespace std;
int i;
int sumlvl[10];
string s;
struct Node {
int key;
struct Node *son;
struct Node *brother;
struct Node *parent;
int lvl;
};
Node *create_tree(int v) {
Node *Tree;
Tree->key = v;
//обнуляем указатели к братьям и сыновьям, независимая вершина, которая хранит value
Tree->son = NULL;
Tree->brother = NULL;
Tree->parent = NULL;
return Tree;
}
Node*create_bro(Node*b, int v){
Node* bro;
bro->parent = b->parent;
b->brother = bro;
bro->brother = NULL;
bro->son = NULL;
bro->key = v;
return bro;
}
Node *create_son(Node* p, int v){
Node* son;
son->key = v;
p->son = son;
son->parent = p;
son->brother = NULL;
son->son = NULL;
return son;
}
Node*SonAndBros(Node* f, int lvl){
i++;
f->son = create_son(f, int(s[i]));
sumlvl[lvl]=f->son->key;
Node*t = f->son;
i++;
while (1){
if(s[i]=='('){
lvl++;
t= SonAndBros(t, lvl);
i++;
}
if(s[i]==',')
i++;
if(s[i]==')')
break;
if(int(s[i])){
t->brother = create_bro(t, int(s[i]));
t = t->brother;
sumlvl[lvl]+=t->key;
}
}
return t;
}
Node* making_tree(Node* Root){
Root = create_tree(int(s[0]));
i++;
int lvl = 0;
//sumlvl[0]=int(s[0]);
while(i<s.size()){
if(s[i]=='('){
lvl++;
SonAndBros(Root, lvl);
}
}
return Root;
}
int main()
{
Node* Tree = NULL;
cin >> s;
making_tree(Tree);
for(int i = 0; i<10; i++){
cout << sumlvl[i];
}
cout << Tree->key << ' ' << Tree->son->key;
return 0;
}
CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBpOwppbnQgc3VtbHZsWzEwXTsKc3RyaW5nIHM7CnN0cnVjdCBOb2RlIHsKICAgIGludCBrZXk7CiAgICBzdHJ1Y3QgTm9kZSAqc29uOwogICAgc3RydWN0IE5vZGUgKmJyb3RoZXI7CiAgICBzdHJ1Y3QgTm9kZSAqcGFyZW50OwogICAgaW50IGx2bDsKfTsKCk5vZGUgKmNyZWF0ZV90cmVlKGludCB2KSB7CiAgTm9kZSAqVHJlZTsKICBUcmVlLT5rZXkgPSB2OwogIC8v0L7QsdC90YPQu9GP0LXQvCDRg9C60LDQt9Cw0YLQtdC70Lgg0Log0LHRgNCw0YLRjNGP0Lwg0Lgg0YHRi9C90L7QstGM0Y/QvCwg0L3QtdC30LDQstC40YHQuNC80LDRjyDQstC10YDRiNC40L3QsCwg0LrQvtGC0L7RgNCw0Y8g0YXRgNCw0L3QuNGCIHZhbHVlCiAgVHJlZS0+c29uID0gTlVMTDsKICBUcmVlLT5icm90aGVyID0gTlVMTDsKICBUcmVlLT5wYXJlbnQgPSBOVUxMOwogIHJldHVybiBUcmVlOwp9CgpOb2RlKmNyZWF0ZV9icm8oTm9kZSpiLCBpbnQgdil7CiAgICBOb2RlKiBicm87CiAgICBicm8tPnBhcmVudCA9IGItPnBhcmVudDsKICAgIGItPmJyb3RoZXIgPSBicm87CiAgICBicm8tPmJyb3RoZXIgPSBOVUxMOwogICAgYnJvLT5zb24gPSBOVUxMOwogICAgYnJvLT5rZXkgPSB2OwogICAgcmV0dXJuIGJybzsKICAgIH0KCk5vZGUgKmNyZWF0ZV9zb24oTm9kZSogcCwgaW50IHYpewogICAgTm9kZSogc29uOwogICAgc29uLT5rZXkgPSB2OwogICAgcC0+c29uID0gc29uOwogICAgc29uLT5wYXJlbnQgPSBwOwogICAgc29uLT5icm90aGVyID0gTlVMTDsKICAgIHNvbi0+c29uID0gTlVMTDsKICAgIHJldHVybiBzb247Cn0KCk5vZGUqU29uQW5kQnJvcyhOb2RlKiBmLCBpbnQgbHZsKXsKICAgIGkrKzsKICAgIGYtPnNvbiA9IGNyZWF0ZV9zb24oZiwgaW50KHNbaV0pKTsKICAgIHN1bWx2bFtsdmxdPWYtPnNvbi0+a2V5OwogICAgTm9kZSp0ID0gZi0+c29uOwogICAgaSsrOwogICAgd2hpbGUgKDEpewogICAgICAgIGlmKHNbaV09PScoJyl7CiAgICAgICAgICAgIGx2bCsrOwogICAgICAgICAgICB0PSBTb25BbmRCcm9zKHQsIGx2bCk7CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICB9CiAgICAgICAgaWYoc1tpXT09JywnKQogICAgICAgICAgICBpKys7CiAgICAgICAgaWYoc1tpXT09JyknKQogICAgICAgICAgICBicmVhazsKICAgICAgICBpZihpbnQoc1tpXSkpewogICAgICAgICAgICB0LT5icm90aGVyID0gY3JlYXRlX2Jybyh0LCBpbnQoc1tpXSkpOwogICAgICAgICAgICB0ID0gdC0+YnJvdGhlcjsKICAgICAgICAgICAgc3VtbHZsW2x2bF0rPXQtPmtleTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gdDsKfQoKTm9kZSogbWFraW5nX3RyZWUoTm9kZSogUm9vdCl7CiAgICBSb290ID0gY3JlYXRlX3RyZWUoaW50KHNbMF0pKTsKICAgIGkrKzsKICAgIGludCBsdmwgPSAwOwogICAgLy9zdW1sdmxbMF09aW50KHNbMF0pOwogICAgd2hpbGUoaTxzLnNpemUoKSl7CiAgICAgICAgaWYoc1tpXT09JygnKXsKICAgICAgICAgICAgbHZsKys7CiAgICAgICAgICAgIFNvbkFuZEJyb3MoUm9vdCwgbHZsKTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIFJvb3Q7Cn0KCmludCBtYWluKCkKewogICAgTm9kZSogVHJlZSA9IE5VTEw7CiAgICBjaW4gPj4gczsKCiAgICBtYWtpbmdfdHJlZShUcmVlKTsKICAgIGZvcihpbnQgaSA9IDA7IGk8MTA7IGkrKyl7CiAgICAgICAgY291dCA8PCBzdW1sdmxbaV07CiAgICB9CiAgIGNvdXQgPDwgVHJlZS0+a2V5IDw8ICcgJyA8PCBUcmVlLT5zb24tPmtleTsKCiAgICByZXR1cm4gMDsKfQo=