Problem:
Score : 500 points

Problem Statement

We have N bulbs arranged on a number line, numbered 1 to N from left to right.
Bulb i is at coordinate i.

Each bulb has a non-negative integer parameter called intensity.
When there is a bulb of intensity d at coordinate x, the bulb illuminates the segment from coordinate x-d-0.5 to x+d+0.5.
Initially, the intensity of Bulb i is A_i. We will now do the following operation K times in a row:

For each integer i between 1 and N (inclusive), let B_i be the number of bulbs illuminating coordinate i. Then, change the intensity of each bulb i to B_i.

Find the intensity of each bulb after the K operations.

Constraints

1 \leq N \leq 2 \times 10^5

1 \leq K \leq 2 \times 10^5

0 \leq A_i \leq N

Input

Input is given from Standard Input in the following format:

N K
A_1 A_2 \ldots A_N

Output

Print the intensity A{'}_i of each bulb i after the K operations to Standard Output in the following format:

A{'}_1 A{'}_2 \ldots A{'}_N

Sample Input 1

5 1
1 0 0 1 0

Sample Output 1

1 2 2 1 2

Initially, only Bulb 1 illuminates coordinate 1, so the intensity of Bulb 1 becomes 1 after the operation.
Similarly, the bulbs initially illuminating coordinate 2 are Bulb 1 and 2, so the intensity of Bulb 2 becomes 2.

Sample Input 2

5 2
1 0 0 1 0

Sample Output 2

3 3 4 4 3

Solution in PHP (7.4.4) (judge verdict: Wrong Answer)

<?php
  // 標準入力取得
  $inputs = fgets(STDIN);
  $inputs = str_replace(PHP_EOL, '', $inputs);

  // 電球の個数と操作の回数を定義
  list($dNum, $opNum) = preg_split('/\s+/', $inputs);

  $dStatuses = fgets(STDIN);
  $dStatuses = str_replace(PHP_EOL, '', $dStatuses);

  // 最初の値がすべてゼロなら何を実行してもゼロ
  if (strlen(str_replace("0", "", str_replace(" ", "", $dStatuses))) == 0) {
    echo implode(" ", array_fill(0, $dNum, 0));
    exit();
  }

  // 電球の数に対して、操作の回数が一定以上の場合には場合には処理をしない
  // どのくらい？？？？
  if ($dNum < $opNum) { // 正しい？？笑
    echo implode(" ", array_fill(0, $dNum, $dNum));
    exit();
  }

  // 電球のステータスを配列として定義
  $dStatusArray = preg_split('/\s+/', $dStatuses);

  // 指定された回数同じ操作を繰り返す
  for ($i = 0; $i < $opNum; $i++) {
    $changeResult = array_fill(0, $dNum, 0); // 変更結果を保存するための配列を定義
    $tmpArray = $dStatusArray;
    foreach ($tmpArray as $key => $value) {
      for($j = -$value; $j <= $value; $j++) {
        // 配列が存在しない場合には続行
        if ($key + $j >= 0 && $key + $j < $dNum) {
          // 配列があった場合には所定の処理を実行する
          $changeResult[$key + $j] += 1;
          // すべての電球がマックス光っていた場合には処理を終了させる???

        }
      }
    }
    $dStatusArray = $changeResult;
  }

  $result = implode(" ", $dStatusArray);
  echo $result;