县立樱姬中学
题号:NC282539
时间限制:C/C++/Rust/Pascal 4秒,其他语言8秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

题目背景
我伸出手却够不到。还差一点点,可就是够不着。已经,永远都够不着了。
“为什么就是够不着啊……”
伸出的手上戴着的手表指针已经转到四点五十八分了,十秒,二十秒,三十秒。然后。
“回来吧。”
一道声音盖过雨声传了过来。
温柔,圆润的声音。帮我捡起护身符的人是。
“秋月。”
“阳菜子阿姨……”
谢谢。
最后仿佛听到她低声说了句。
之后,时间迎来了四点五十九分。
我死去,她重生。

题目描述
现在有 n 个数,第 i 个数的权值为 a_i
我们认为能从节点 i 跳跃到节点 j,当且仅当 a_j<a_ij<i 同时 i \not\equiv j \pmod k,其中 k 为给出的定值。
对于每个点 i,你需要求出从点 i 开始最多能够跳跃多少次。
保证 a_i 互不相同。

数据范围
1\leqslant n,k\leqslant 10^6,1\leqslant a_i\leqslant 10^{18}

保证 a_i 互不相同。

输入描述:

第一行,两个整数 n,k,分别表示数的数量与判断跳跃的参数

第二行,n 个整数,第 i 个整数 a_i 表示第 i 个点的点权。

输出描述:

一行,n 个整数,第 i 个整数表示从第 i 个点开始最多能够跳跃多少次。
示例1

输入

复制
5 3
3 2 1 4 5

输出

复制
0 0 0 1 2