#include<bits/stdc++.h>
using namespace std;
string solve(string s)
{
int a, b;
a = s.find_last_of('[');
b = s.find_first_of(']');
if (a == string::npos)
{
return s;
}
string sp;
if (!isupper(s[a + 2]))
{
for (int i = 1; i <= stoi(s.substr(a + 1, 2)); i++)
sp += s.substr(a + 3, b - a - 3);
}
else
{
for (int i = 1; i <= s[a + 1] - '0'; i++)
sp += s.substr(a + 2, b - a - 2);
}
return solve(s.substr(0, a) + sp + s.substr(b + 1));
}
int main()
{
string s;
cin >> s;
int i = 0, j = s.size() - 1;
int t1, t2;
while (true)
{
t1 = s.find(']', i);
if (t1 == string::npos)
break;
t2 = s.find('[', t1);
if (t2 == string::npos)
break;
int k = t1 + 1;
for (; k < t2; k++)
{
if (!isupper(s[k]))
{
i = k;
break;
}
}
if (k == t2)
{
s = solve(s.substr(0, t1 + 1)) + s.substr(t1 + 1);
}
}
cout << solve(s);
}