给定一个包含非负整数的数组 $a_1, a_2, \dots, a_n$。
你需要将其划分为 $k$ 个非空子段:$[1; b_1], [b_1 + 1; b_2], \dots, [b_{k-1} + 1; n]$。
设第 $i$ 个子段的和为 $s_i$,第 $i$ 个子段的最大值为 $m_i$。你的目标是使得对于每个 $1 \le i \le k - 1$,满足 $|s_i - s_{i+1}| \le \max(m_i, m_{i+1})$。
输入格式
第一行包含两个整数 $n$ 和 $k$:数组的大小和要求的子段数量($3 \le k \le n \le 100\,000$)。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$:给定的数组($0 \le a_i \le 50\,000$)。
输出格式
如果可以进行划分,第一行输出 “Yes”,第二行输出 $k - 1$ 个由空格分隔的整数 $b_1, b_2, \dots, b_{k-1}$。这些整数必须满足 $1 \le b_1 < b_2 < \dots < b_{k-1} < n$。此外,对于每个 $1 \le i \le k - 1$,必须满足不等式 $|s_i - s_{i+1}| \le \max(m_i, m_{i+1})$。如果存在多种可能的解,输出其中任意一个即可。
如果无法进行划分,则在单行内输出 “No”。
样例
输入 1
5 3 17 18 17 30 35
输出 1
Yes 2 4