using System;
using System.Collections.Generic;
using System.Text;

class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param s string字符串
     * @return string字符串
     */
    public string decodeString (string s) {
        // write code here
        // write code here
        if (string.IsNullOrWhiteSpace(s))
            return s;
        Stack<char> cStack = new Stack<char>();
        foreach (char c in s) {
            if (c == ']') {
                StringBuilder sb = new StringBuilder();
                while (cStack.Count != 0 && cStack.Peek() != '[')
                    sb.Insert(0, cStack.Pop());
                cStack.Pop();
                StringBuilder sbN = new StringBuilder();
                while (cStack.Count != 0 && cStack.Peek() >= '0' && cStack.Peek() <= '9')
                    sbN.Insert(0, cStack.Pop());
                //cStack.Pop();
                for (int n = 0; n < int.Parse(sbN.ToString()); n++) {
                    for (int i = 0; i < sb.Length; i++)
                        cStack.Push(sb[i]);
                }
            } else
                cStack.Push(c);
        }
        StringBuilder sbR = new StringBuilder();
        while (cStack.Count != 0)
            sbR.Insert(0, cStack.Pop());
        return sbR.ToString();
    }
}