#229. 折叠序列

折叠序列

题目描述

比尔正在试图用折叠重复子序列的方式紧凑的表示由大写字母A\red {’A’}Z\red {’Z’}组成的字符序列。

例如,表示序列AAAAAAAAAABABABCCD\red {AAAAAAAAAABABABCCD}的一种方式是10A2BAB2CD\red {10(A)2(BA)B2(C)D}

他通过以下方式定义了折叠的字符序列以及它们的展开变换:

1\red {1}、包含带个字符的序列被认为是折叠序列,展开它得到的序列为它本身。

2\red {2}、如果S\red {S}Q\red {Q}是两个折叠序列,并且S\red {S}可以展开得到S\red {S’}Q\red {Q}可以展开得到Q\red {Q’},则认为SQ\red {SQ}也是一个折叠序列,并且SQ\red {SQ}展开得到SQ\red {S’Q’}

3\red {3}、如果S\red {S}是折叠序列,则X(S)\red {X(S)}也是折叠序列,其中X\red {X}为大于1\red {1}的整数。如果S\red { S}展开得到S\red {S’},则X(S)\red {X(S)}展开得到X\red {X}S\red {S’}

根据定义可以展开任意给出的折叠序列,现在给出原序列,请你将它折叠,并使得折叠序列包含尽可能少的字符数。

输入格式

输入包含一行由大写字母构成的字符序列,序列长度在1\red {1}100\red {100}之间。

输出格式

输出包含字符数最少的折叠序列,如果答案不唯一则任意输出一个即可。

样例

输入样例

AAAAAAAAAABABABCCD

输出样例

9(A)3(AB)CCD