L-IVE: Length Archiver

MikrosSoft (not to be confused with Microsoft) is an IT solution company which headquarter is in Medan. The company has a plan to develop a compression tool called L-IVE, short for Length ArchIVEr. L-IVE can be used to compress any type of data (text, music, video, image, etc.). It processes each consecutive bytes of the same value and present them with a 2 bytes data: byte count and byte value. Byte count represents the count, while byte value represents the value. Consider the following example.

  Original Data       Compressed Data
---------------       ---------------
        5 5 5 5  <->  4 5
              3  <->  1 3
  100 100 8 8 8  <->  2 100 3 8
5 5 4 4 4 5 5 5  <->  2 5 3 4 3 5

In the first example, there are 4 consecutive 5s, thus it can be represented as 4 5. In the last example, there are 2 consecutive 5s, 3 consecutive 4s, and followed by 3 consecutive 5s, thus the compressed data is 2 5 3 4 3 5. As you might have suspected, this compression might produce a longer data than the original, e.g., the second example.

Since a byte can only hold up to 256 different values (0..255). This compression technique can only compress up to 255 consecutive byte of the same value at a time. If it has more than 255 bytes, then it treats the remaining as a separate consecutive bytes. For example, a data containing 1000 bytes of consecutive 7s will be represented as 255 7 255 7 255 7 235 7. Note that 255 + 255 + 255 + 235 = 1000.

Your task in this problem is, given the original data, output the compressed data.

Input

Input contains a line with at least 1 and no more than 100,000 integers, each is separated by a single space. Each integer is between 0 and 255 (a byte), inclusive.

Output

Output in two lines. The first line contains an integer M denoting the number of bytes in the compressed data. The second line contains M integers representing the compressed data; each integer is separated by a single space.

Examples

inputExample #1
5 5 5 5
output
2
4 5

inputExample #2
3
output
2
1 3

inputExample #3
100 100 8 8 8
output
4
2 100 3 8

inputExample #4
5 5 4 4 4 5 5 5
output
6
2 5 3 4 3 5


End of Problem