在多任务操作系统 “Squirrel OS” 中运行着 $N$ 个进程。这 $N$ 个进程中的每一个都有一个给定的优先级 $p_i$,这会影响该进程被运行的频率。由于系统在单处理器中只有一个核心来运行程序,因此它面临着在考虑进程优先级的情况下,在这些进程之间分配 CPU 时间的挑战。
确定在每个时刻运行哪个进程的算法可以描述如下。对于每个进程,除了优先级 $p_i$ 之外,还有一个计数器 $t_i$。最初所有 $t_i$ 都等于 $0$。
然后每秒钟:
- 选择 $p_i + t_i$ 值最大的进程。
- 在这些进程中,选择编号 $i$ 最小的进程。
- 选中的进程 $i$ 运行一秒钟。
- 对于选中的进程 $i$,将 $t_i$ 的值设为 $0$。
- 对于所有其他进程,将 $t_i$ 的值增加 $1$。
模拟该操作系统运行 $T$ 秒的过程,并计算每个进程运行了多少秒。假设所有计算和进程之间的切换都是瞬间完成的,因此每个进程的运行时间(以秒为单位)是一个整数。
输入格式
第一行包含两个空格分隔的整数 $N$ 和 $T$ — 操作系统中的进程数($1 \le N \le 10^5$)和需要模拟的秒数($1 \le T \le 10^6$)。
第二行包含 $N$ 个空格分隔的整数 $p_i$ — 进程的优先级($0 \le p_i \le 10^5$)。
输出格式
输出唯一的一行,包含 $N$ 个空格分隔的整数 — 表示每个进程运行了多少秒。
样例
输入样例 1
3 10 3 4 5
输出样例 1
3 3 4