Majid has a binary string of length with only 1 values. One morning, his niece accidentally finds this string and starts destroying it. She destroys the string in steps. The niece first chooses a sequence of integers: . Then, in the -th step, she selects the first bits and destroys this part as follows:
To be more precise, if the binary string before the -th step is as follows:
The binary string after the -th step will be as follows, where represents the negation of bit :
Majid wants to restore the string to its initial state using his superpower. Each time Majid uses his superpower, he chooses two numbers . Then, magically, all the bits in positions from to inclusive are negated. This interval includes the bits at positions and themselves. The positions of the bits are considered from left to right, and the leftmost bit has a position of .
Help Majid restore the string to its initial state with the fewest number of uses of his superpower.
The first line of the input consists of two integers and separated by a space, which is the length of the string and the number of steps of string destruction, respectively.
The second line contains a sequence of integers , chosen by the niece.
Print , the minimum number of times Majid needs to use his superpower in the first line.
Then, in the th line of the output, print the interval that Majid chooses in his use of superpower as two numbers separated by a space, in ascending order.