27. 成對檢查

給定 N個 ( 1 <= N <= 3 ) 字串,
每一個字串M (1 <= len(M) <= 50) 由括號與英文字母組成
括號共有三種: {, }, [, ], (, )
檢查這字串M中的括號是否成對出現,
如果括號成對出現,代表通過檢查,輸出"pass"
如果括號沒有成對出現,代表未通過檢查,輸出"fail"
並且輸出深度D(1<= D <= 6) 中的所有英文字母 

深度:字串由左至右閱讀,深度從0開始,當遇到左括號深度加一層,遇到右括號深度減一層,且字串中括號必須成對出現,深度才成立。
例: {a[b(c)d]e}
深度 1: a, e
深度 2: b, d
深度 3: c


【輸入說明】
第1行:輸入一整數N (1<=N<=3)
第2行:輸入一整數D (1<= D <= 6)
第3~N+2行:輸入一字串

範例輸入說明:
3 (3個字串)
3 (深度3)
{b[bc][c(bd)]}(字串1)
{q(ac)(df)(bn)r}(字串2)
{b{[h]}dc[d(i)a]}(字串3)

【輸出說明】
第1~N行根據輸入的各行字串判斷如下:
   (1)如果字串內括號成對出現,輸出"pass, "
       依照深度要求,接續輸出深度內的所有字母
       如果深度要求內沒有任何字母,輸出"EMPTY"
   (2)如果字串內括號沒有成對出現,輸出"fail"

範例輸出說明:
pass, bd (括號皆有成對,且深度要求內也有字母)
pass, EMPTY(括號皆有成對,但深度要求內沒有字母)
pass, hi (括號皆有成對,且深度要求內也有字母)

【測試資料一】
輸入:
3
3
{[()][]}
{}[(])
{{{{{{

輸出:
pass, EMPTY
fail
fail

【測試資料二】
輸入:
2
1
(he[ad(dsa{fd}asdf)srfa]l(ssd)lo)
{(qq{ww}ee){rr}}


輸出:
pass, hello
pass, EMPTY

【測試資料三】
輸入:
1
2
([{abc}]qwe({}[qe)qw]hgh)

輸出:
fail

【測試資料四】
輸入:
3
4
{a(b[c(d)e][f(g)h]i)(j[k(l)m][n(o)p]q)r}
(q[w(e{[q]}r)a][a(s{}d)f]z)
[p(o{i})l((j{h}t)j}g{m)h]

輸出:
pass, dglo
pass, EMPTY
fail

【隱藏測試資料一】
輸入:
3
3
(({}))
[)(]
}}}}}}}

輸出:
pass, EMPTY
fail
fail

【隱藏測試資料二】
輸入:
2
1
(n{d(g[z]n[y]m)w(q)})
([M{T}f](s)(B))

輸出:
pass, n
pass, EMPTY

【隱藏測試資料三】
輸入:
1
2
{([)]}

輸出:
fail

【隱藏測試資料四】
輸入:
3
3
({i}s[m{k}y]k{h}d{h{q}})
((l)f{k()p({d})p}u)
[h{(ah)b}{]

輸出:
pass, kq
pass, EMPTY
fail