「SWTR-1」Sunny's Crystals

题目背景

小 $\mathrm{S}$ 喜欢收集水晶。

题目描述

小 $\mathrm{S}$ 有 $n$ 个水晶,每个水晶有一个属性 $d_i$ ,为这个水晶的**价值**。 有一天,小 $\mathrm{A}$ 来到了 小 $\mathrm{S}$ 家,让 小 $\mathrm{S}$ 把他的水晶排成一个序列,并且摧毁所有价值为 $w$ 的水晶。 但是,由于这个序列的特殊性,你的每次摧毁必须要满足: - 该水晶在序列里的位置**必须要是 $2$ 的次幂**,即你只能摧毁在 $2^x$ 这个位置上的水晶,$0\leq x \leq \log_2 y$ 且为整数,其中 $y$ 为现在序列里水晶的个数。 摧毁后,**所有在该水晶后面的水晶都会向前移动一格**。 例如,水晶价值序列 $6\ 10\ 4\ 7\ 8$,你只能摧毁位置为 $1,2,4$ 上的水晶。 如果摧毁 $2$ 号水晶,序列就会变成 $6\ 4\ 7\ 8$。 为了节省时间,小 $\mathrm{S}$ 想知道**最少**多少次可以摧毁所有价值为 $w$ 的水晶,且第 $i$ 次摧毁的水晶初始位置是什么。 **本题使用 Special Judge**,如果有多种答案,任意输出一种即可。

输入输出格式

输入格式


第一行两个整数 $n,w$。 第二行,$n$ 个正整数 $d_i$。

输出格式


第一行一个整数 $m$,表示最少可以摧毁所有 $w$ 的次数。 接下来一行 $m$ 个数,第 $i$ 个数表示 第 $i$ 次摧毁时被摧毁的水晶的**初始位置**是什么,**用空格隔开**。

输入输出样例

输入样例 #1

5 4
1 4 2 4 5

输出样例 #1

2
4 2

输入样例 #2

5 2
1 2 2 2 2

输出样例 #2

4
2 3 4 5

输入样例 #3

5 8
6 10 4 7 8

输出样例 #3

2
4 5

说明

--- ### 样例说明 样例 $1$: 先摧毁后面的 $4$,初始位置为 $4$,**价值**序列变成: $1\ 4\ 2\ 5$。 再摧毁前面的 $4$,初始位置为 $2$。 总次数是 $2$ 次。 样例 $2$: 先摧毁第 $1$ 个 $2$,初始位置为 $2$,序列变成:$1\ 2\ 2\ 2$。 再摧毁剩下的第 $1$ 个 $2$,初始位置为 $3$,序列变成:$1\ 2\ 2$。 再摧毁第一个 $2$,初始位置为 $4$,序列变成:$1\ 2$。 再摧毁第一个 $2$,初始位置为 $5$。 总次数是 $4$ 次。 --- ### 数据范围与约定 对于 $15\%$ 的数据,有 $n\leq5$。 对于 $25\%$ 的数据,有 $n\leq20$。 对于 $30\%$ 的数据,有 $n\leq1000$。 对于 $35\%$ 的数据,有 $n\leq10000$。 对于 $50\%$ 的数据,有 $n\leq3\times 10^5$。 对于 $80\%$ 的数据,有 $n\leq10^6$。 对于 $100\%$ 的数据,有 $1\leq n\leq3\times 10^6,1\leq d_i\leq 40000$,保证 $w$ 的个数不大于 $1.5\times 10^6$。 --- 碎掉的水晶在阳光下闪闪发光……