#abc261c. [abc261_c]NewFolder(1)

[abc261_c]NewFolder(1)

問題文

22 つの文字列 A,BA,B に対して、AA の末尾に BB を連結した文字列を A+BA+B と表します。

NN 個の文字列 S1,ldots,SNS_1,\\ldots,S_N が与えられます。i=1,ldots,Ni=1,\\ldots,N の順に、次の指示に従って加工して出力してください。

  • S1,ldots,Si1S_1,\\ldots,S_{i-1} の中に SiS_i と同じ文字列が存在しないならば、SiS_i を出力する。
  • S1,ldots,Si1S_1,\\ldots,S_{i-1} の中に SiS_i と同じ文字列が XX(X>0)(X>0) 存在するならば、XX を文字列として扱って Si+S_i+ ( +X++X+ ) を出力する。

制約

  • 1leqNleq2times1051 \\leq N \\leq 2\\times 10^5
  • SiS_i は英小文字のみからなる長さ 11 以上 1010 以下の文字列

入力

入力は以下の形式で標準入力から与えられる。

NN S1S_1 S2S_2 vdots\\vdots SNS_N

出力

問題文中の指示にしたがって、NN 行出力せよ。


入力例 1

5
newfile
newfile
newfolder
newfile
newfolder

出力例 1

newfile
newfile(1)
newfolder
newfile(2)
newfolder(1)

入力例 2

11
a
a
a
a
a
a
a
a
a
a
a

出力例 2

a
a(1)
a(2)
a(3)
a(4)
a(5)
a(6)
a(7)
a(8)
a(9)
a(10)