#P1114. 游程编码

游程编码

Background

Description

计算机编码的种类是很多的。较为出名的就有海明编码、循环冗余编码、游程编码等等。今天,我们就来了解一种较为简单的编码—游程编码。
游程编码是一种相对简单的编码技术(真的),主要思路是将一个相同值的连续串用一个代表值和串长来代替。例如,有一个字符串“aaabccddddd”,经过游程编码的方式进行编码后可以用“3a1b2c5d”来表示。这样,便可以在一定程度上减小编码的长度。现在我们就写一个程序来实现游程编码的编码操作吧。

Format

Input

单组输入。先在第一行输入字符串的长度,再输入一个字符串,长度不超过100,表示原始的编码S1。保证输入的字符串中,每个连续串的长度不超过9.

Output

2行输出,每组输出先在第一行给出游程编码的长度,在第二行给出一个字符串,表示根据原始的编码S1进行游程编码操作后得到的结果。

Samples

12
AAABBBBCCCCC
6
3A4B5C
7
AAADDDA
6
3A3D1A

提示:输入数据时,使用scanf(“%d\n”)语句时,一定要加“\n”。否则回车符会被读入字符串中,造成答案错误熬。

Limitation

1s, 1024KiB for each test case.