#P14659. [IATI2012]TELEPORT

[IATI2012]TELEPORT

题目描述

某个行星系统有 2^n 个行星,它们按与恒星距离从近到远排成一列,并依次编号为 0,1,...,2^n-1

Stancho 一开始可以通过太空站到达编号为 k 的行星。除此之外,他还拥有 2^n-1 个一次性传送器,编号为 1,2,...,2^n-1

编号为 t 的传送器只能使用一次,并且如果当前人在编号为 m 的行星上,那么它可以把人传送到:

  • m+t,或
  • m-t

前提是目标行星存在,即编号仍在 [0,2^n-1] 范围内。

请你找出一种使用传送器的最佳方式,使得 Stancho 能访问尽可能多的行星。

输入格式

输入一行两个整数 n, k

  • 1 <= n <= 20
  • 0 <= k <= 2^n - 1

输出格式

第一行输出 Stancho 最多还能访问多少个行星 p不包含起始行星 k)。

第二行输出一个长度为 p 的序列,表示依次使用的传送器编号:

  • 若某一步是从较小编号传到较大编号,则输出正数 t
  • 若某一步是从较大编号传到较小编号,则输出负数 -t

如果可行方案不唯一,输出任意一个即可。

数据范围

  • 1 <= n <= 20
  • 0 <= k <= 2^n - 1

样例

输入

2 2

一种可能的输出

3
-1 2 -3