你是否曾经进行过长途公路旅行?AAA(美国汽车协会)有一种用于长途公路旅行的工具,称为 TripTik,它沿着公路显示兴趣点。
你正在构建一个 TripTik 应用程序,允许用户查看路线上的内容。它将公路建模为一条直线,并将兴趣点建模为该线上的点。所有点都有一个整数坐标以及一个唯一的整数权重。你的应用程序提供了一个可以放大和缩小的视口。此外,为了防止显示变得过于杂乱,仅显示权重最高的少数几个点。初始视口以 $0.0$ 为中心,显示线上从 $-1.0$ 到 $1.0$ 的范围。
改变视口有三种有效操作:
- 缩小 (Zoom out):将视口的尺寸加倍,同时保持中心不变;无论当前视口尺寸如何,此操作始终可以执行。
- 放大 (Zoom in):将视口的尺寸减半,同时保持中心不变;无论当前视口尺寸如何,此操作始终可以执行。
- 重新居中 (Recenter):将视口的中心更改为等于视口内可见(包括边界)的一个兴趣点。
有一个重要的注意事项:你的 TripTik 应用程序不会渲染给定视口中的所有兴趣点;相反,它只会渲染视口中权重最高的特定数量的点。其余权重较低的点不可见,因此不能作为重新居中操作的目标。
对于每个兴趣点,确定从起始视口到达该兴趣点居中且可见的视口所需的最少操作次数。请独立考虑每个兴趣点。
输入格式
输入的第一行包含两个整数 $n$ ($1 \le n \le 10^5$) 和 $k$ ($1 \le k \le 4$),其中 $n$ 是点的数量,$k$ 是视口中可见点的最大数量。
接下来的 $n$ 行,每行包含一个整数 $x$ ($|x| \le 10^8, x \neq 0$)。这些是兴趣点。每个点的权重等于它在列表中的位置,列表中较早出现的点权重较低。所有点都是不同的。
输出格式
输出 $n$ 行,每行一个整数,表示从起始视口到达以相应输入点为中心且该点可见的视口所需的最少操作次数。如果无法到达,则输出 $-1$。输出行的顺序应与输入点的顺序相对应。
样例
样例输入 1
4 2 100 4 1 3
样例输出 1
-1 5 1 3