Grigory loves strings. Recently he found a metal strip on a loft. The strip had length n and consisted of letters "V" and "K". Unfortunately, rust has eaten some of the letters so that it's now impossible to understand which letter was written.
Grigory couldn't understand for a long time what these letters remind him of, so he became interested in the following question: if we put a letter "V" or "K" on each unreadable position, which values can the period of the resulting string be equal to?
A period of a string is such an integer d from 1 to the length of the string that if we put the string shifted by d positions to the right on itself, then all overlapping letters coincide. For example, 3 and 5 are periods of "VKKVK".
Output
For each test case print two lines. In the first line print the number of possible periods after we replace each unreadable letter with "
V" or "
K". In the next line print all these values in increasing order.
Example
Output
2
3 5
6
1 2 3 4 5 6
3
2 3 4
Note
In the first test case from example we can obtain, for example, "
VKKVK", which has periods
3 and
5.
In the second test case we can obtain "
VVVVVV" which has all periods from
1 to
6.
In the third test case string "
KVKV" has periods
2 and
4, and string "
KVKK" has periods
3 and
4.