#include <stdio.h>
#define max(x, y) ((x)<(y) ? (y) : (x))
#define min(x, y) ((x)>(y) ? (y) : (x))

int main(){
  int n, k;  scanf("%d %d", &n, &k);
  long a[200005];
  for(int i=1; i<=n; i++)  scanf("%ld", a+i);

  for(int kk=0; kk<k; kk++){
    long turn[200005] = {0};
    for(int i=1; i<=n; i++){
      turn[max(1, i-a[i])]++;
      turn[min(n+1, i+a[i]+1)]--;
    }
    long sum = 0;
    for(int i=1; i<=n; i++){
      sum += turn[i];
      a[i] = sum;
    }
  }
  for(int i=1; i<=n; i++){
    printf("%ld ", a[i]);
  }puts("");

  return 0;
}
