Антон купує кабанчика
ліміт часу на тест
1 second
ліміт використання пам'яті на тест
256 megabytes
введення
standard input
виведення
standard output

Антон вирішив не закривати "хвости", а купити кабанчика. По допомогу з грошима він звернувся до знайомого чародія Козака Вуса. Так сталось, що Козак Вус був занадто зайнятий підготовкою особливих смузі марки "Б", тому він просто вирішив дати Антону дві магічні кнопки:

  1. натискання на першу кнопку подвоїть суму його балансу;
  2. натискання на другу кнопку додає до його балансу рівно $$$2^k$$$ монет.
На підпільному аукціоні кабанчиків Антон побачив, що найдешевший красивий кабанчик коштує $$$x$$$ карбованців.

Він вже майже почав натискати на кнопки, але згадав що за такі махінації працівники "Полібанку" можуть подати на нього в суд. Тому він вирішив, що він спробує отримати рівно $$$x$$$ монет, після чого одразу купить Кабанчика і знову буде мати на своєму рахунку рівно $$$0$$$ карбованців.

Тепер вам потрібно допомогти Антону з планом дій, і в випадку можливості успіху махінацій сказати мінімальну кількість операцій, які потрібно виконати і вивести порядок операцій. За це Антон пообіцяв вам зіграти на його ноутбуці в гру "Calculator Online".

Вхідні дані

Перший рядок містить два цілі числа $$$k$$$ та $$$x$$$ ($$$0 \le k \le 10^5$$$, $$$1 \le x \le 10^{18}$$$).

Вихідні дані

У першому рядку виведіть одне число $$$n$$$ ($$$1 \leq n \leq 1\,000$$$) — мінімальну кількість операцій натискання на одну з кнопок, потрібну, щоб досягнути балансу $$$x$$$.

У другому рядку виведіть $$$n$$$ цілих чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \leq a_i \leq 2$$$) — кнопки у порядку, у якому потрібно на них натискати.

Якщо ж неможливо, використовуючи дані кнопки, отримати баланс рівний рівно $$$x$$$ — виведіть $$$-1$$$.

Система оцінки

У цій задачі існують умовні блоки. Якщо ваше рішення буде працювати правильно для певних обмежень, то воно отримуватиме певну кількість балів. Зверніть увагу, що оцінювання й досі потестове.

  1. ($$$33$$$ бали): $$$x \le 10^6$$$;
  2. ($$$33$$$ бали): $$$x \le 10^9$$$;
  3. ($$$34$$$ бали): без додаткових обмежень.

Приклади

Вхідні дані
3 24
Вихідні дані
3
2 2 2
Вхідні дані
1 3
Вихідні дані
-1
Вхідні дані
0 13
Вихідні дані
6
2 2 2 1 1 2

Пояснення

У першому тесті ми можемо $$$3$$$ рази натиснути на другу кнопку, тоді баланс стане рівним $$$2^3+2^3+2^3=24$$$.

У другому тесті можна показати, що неможливо за допомогою даних кнопок отримати баланс рівний $$$3$$$.

У третьому тесті можна виконати такі операції:

  1. натискання на $$$2$$$ кнопку, баланс рівний $$$1$$$;
  2. натискання на $$$2$$$ кнопку, баланс рівний $$$2$$$;
  3. натискання на $$$2$$$ кнопку, баланс рівний $$$3$$$;
  4. натискання на $$$1$$$ кнопку, баланс рівний $$$6$$$;
  5. натискання на $$$1$$$ кнопку, баланс рівний $$$12$$$;
  6. натискання на $$$2$$$ кнопку, баланс рівний $$$13$$$.

Можна показати що ці відповіді є мінімальними для кожного тесту.