
#include <iostream>
#include <vector>
#include <string>
#include <deque>
#include <stack>
using namespace std;
stack<char> s;
class Node{
public:
Node* left;
Node* right;
int val;
Node(int val):left(nullptr),right(nullptr),val(val){};
};
Node* build(string input, int begin, int end){
Node* head = NULL;
if (begin <= end) {
head = new Node(input[begin]-'0');
if (input[begin+1] == '(') {
int cur = begin+2;
while (!s.empty() || input[cur]!=',') {
if (input[cur] == '(') {
s.push('(');
}else if (input[cur] == ')'){
s.pop();
}
cur++;
}
head->left = build(input, begin+2, cur-1);
head->right = build(input, cur+1, end-1);
}
}
return head;
}
void travel_mid(Node* head){
if (head == NULL) {
return;
}
travel_mid(head->left);
cout << head->val;
travel_mid(head->right);
}
int main(int argc, const char * argv[]) {
cout << "start" << endl;
string input;
cin >> input;
Node* head = build(input, 0, input.size()-1);
travel_mid(head);
}