定义
)
为

在二进制表示下的

的个数。
例如
%3D3)
,
%3D1)
,
%3D2)
。
定义
)
为 第一个比

大的数字

,使得
%3Df(y))
。
例如
%3D2)
,
%3D4)
,
%3D5)
。
给你一个长度为

的数组

,第

个元素为

。
我们希望从数组

中挑选出一些元素,构造一个长度为

的同位序列

。
同位序列 满足如下条件:
对于所有的
![j \in [2,m]](https://www.nowcoder.com/equation?tex=j%20%5Cin%20%5B2%2Cm%5D)
,都有
)
。
当然,同位序列越长越好,请你最大化其长度

,然后输出

和对应的同位序列。
如果有多解,输出任意一个即可。
输入描述:
第一行有一个整数
。
第二行有
个整数
。
输出描述:
第一行输出一个整数
,代表 最长的同位序列 的长度。
第二行输出
个整数,代表同位序列中的元素。
备注:
思考题:
如果要求
是
的子序列,那么应该怎么写呢?
这个问题并不难,就不弄
题了。