#include using namespace std; map mp; void solve_operations(vector> &operations) { for (int j = 0; j < operations.size(); j++) { string op = operations[j].first; char l = operations[j].second; if (op == "INCREASE") { mp[l]++; } else if (op == "CLEAR") { mp[l] = 0; } else if (op == "PRINT") { cout << mp[l] << " "; } else if (op == "REPEAT") { vector> operationsNew; int c = 0; for (int jj = j + 2; jj < operations.size(); jj++) { if (operations[jj].first == "end" && c == 0) { j = jj; break; } operationsNew.push_back(operations[jj]); if (operations[jj].first == "REPEAT") { c++; } if (operations[jj].first == "end") { c--; } } int times = mp[l]; for (int i = 0; i < times; i++) { solve_operations(operationsNew); } } } } void solve() { string s; vector v; while (getline(cin, s)) { v.push_back(s); } string rawInput; for (int i = 0; i < v.size(); i++) { if (!rawInput.empty()) { if (rawInput[rawInput.size() - 1] != ' ') { rawInput += ' '; } } for (int j = 0; j < v[i].size(); j++) { if (v[i][j] == '#') { break; } if (v[i][j] == ' ') { if (!rawInput.empty()) { if (rawInput[rawInput.size() - 1] != ' ') { rawInput += ' '; } } } else { rawInput += v[i][j]; } } } for (int i = 65; i <= 90; i++) { mp[char(i)] = 0; } vector> operations; string word; for (int j = 0; j < rawInput.size(); j++) { if (rawInput[j] == '#') { continue; } if (rawInput[j] != ' ') { word += rawInput[j]; } if (word == "INCREASE" || word == "CLEAR" || word == "PRINT") { operations.push_back({word, rawInput[j + 2]}); j += 2; word = ""; } else if (word == "REPEAT") { operations.push_back({word, rawInput[j + 2]}); operations.push_back({"start", '+'}); j += 2 + 8; word = ""; } else if (word == ")") { operations.push_back({"end", '-'}); word = ""; } } solve_operations(operations); } signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); // cout << fixed << setprecision(6) << endl; int t = 1; // cin >> t; while (t--) { solve(); } return 0; }