Вещественные числа

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

Первое правило вещественных чисел --- не используйте вещественные числа


Подслушано в Заколково

Петя работает в наукограде Заколково. Он занимается разработкой нового микропроцессора Чебур. Поскольку ведущий архитектор микропроцессора очень не любит числа с плавающей точкой, вещественные числа в микропроцессоре Чебур хранятся в формате с фиксированной точкой.

Внутренние регистры процессора хранят вещественные числа в виде двоичной дроби ровно с nn двоичными знаками после точки. Число знаков до точки не ограничено. В таком формате представимы числа, равные p/2np/2^n для некоторого целого pp. Число xx, полученное в результате выполнения арифметических операций над вещественными числами, при сохранении в регистр процессора заменяется на ближайшее представимое число, а если xx находится ровно посередине между двумя представимыми числами, то на большее из них. 

Для хранения чисел в памяти используется формат, при котором вещественное число представляется в виде двоичной дроби ровно с kk двоичными знаками после точки (knk \le n, число знаков до точки, так же как и у регистров, не ограничено). В таком формате представимы в точности числа, равные p/2kp/2^k для некоторого целого pp. При загрузке числа из памяти в регистр процессора число дополняется нулями до nn двоичных знаков после точки. При сохранении числа yy в память из регистра оно заменяется на ближайшее представимое число, а если yy находится ровно посередине между двумя представимыми числами, то на большее их них.

Например, пусть n=10n = 10, k=5k = 5. Число 1 хранится в памяти в виде 1.00000_21.00000\_2, число 3 хранится в памяти как 11.00000_211.00000\_2. При загрузке в регистры числа дополняются нулями до 1.0000000000_21.0000000000\_2 и 11.0000000000_211.0000000000\_2, соответственно. Пусть было выполнено деление 1 на 3. Если результат деления 1/31/3 записать в двоичной системе, получится 0.(01)_20.(01)\_2 --- здесь, как и в случае десятичных дробей, часть в скобках означает период бесконечной двоичной дроби. При сохранении в регистре процессора эта дробь будет приближена значением 0.0101010101_20.0101010101\_2. Умножим теперь это число на 3. Получится число 0.1111111111_20.1111111111\_2, в таком же виде оно хранится в регистре процессора. При сохранении в память оно приближается числом 1.00000_21.00000\_2, как ближайшей двоичной дробью с 5 знаками после точки.

Петя заметил, что если загрузить в регистры единицу и целое число vv, поделить 1 на vv, затем умножить результат деления на vv и сохранить результат умножения в память, то итоговое сохраненное значение не всегда равно 1. Например, если v=40v = 40, то после деления в регистре оказывается значение 0.0000011010_20.0000011010\_2, после умножения на vv значение 1.0000010000_21.0000010000\_2, после сохранения в память оно преобразуется в 1.00001_21.00001\_2. Петя называет такие числа неудачными

Петю заинтересовал вопрос, какие целые числа от 1 до rr являются неудачными. Помогите ему выяснить это.

입력

Первая строка входного файла содержит три целых числа nn, kk и rr (1kn1001 \le k \le n \le 100, 1r10001 \le r \le 1000).

출력

В первой строке выходного файла выведите число tt --- количество неудачных чисел, лежащих в диапазоне от 1 до rr. Во второй строке выходного файла через пробел выведите в возрастающем порядке все неудачные числа, лежащие в диапазоне от 1 до rr.