给定一个非负整数组成的数列 $a_1,a_2,\ldots,a_n$,你需要把它划分成恰好 $k$ 个非空子区间,使得每个数恰好在一个区间中。定义 $s_i$ 表示从左往右第 $i$ 个区间和,$m_i$ 表示第 $i$ 个区间最左和最右两个元素的最大值(如果区间长度为 1 则 $m_i$ 就是这个唯一的数),你需要保证 $\forall 2 \le i \le k,\lvert s_i-s_{i-1} \rvert \le \max(m_{i-1},m_i)$。
输入格式
第一行两个正整数 $n,k(3 \le k \le n \le 10^5)$。
第二行 $n$ 个非负整数 $a_1,a_2,\ldots,a_n(0 \le a_i \le 5 \times 10^4)$。
输出格式
如果不存在这样的划分方案,你只需要输出一行 $\texttt {No}$。
否则第一行输出 $\texttt{Yes}$,第二行输出 $k-1$ 个整数 $p_1,\ldots,p_{k-1}(1 \le p_1 < p_2 < \ldots < p_{k-1} < n)$,其中 $p_i$ 表示你的划分方案中从左往右第 $i$ 个区间的右端点(显然 $p_k=n$)。如果有多种划分方案,你只需要输出任意一种。
样例输入
5 3 17 18 17 30 35
样例输出
Yes 2 4
限制与约定
- Subtask 1(20 分):$n \le 1000$
- Subtask 2(30 分):$k \le 50$
- Subtask 3(50 分):没有特殊性质
时间限制:$\texttt {1s}$
空间限制:$\texttt {512MB}$