#include<stdio.h>
#include<stdlib.h>
int max(int a,int b){
  if(a>b) return a;
  return b;
}
int main(){
  int N,K,*cur,NN,*ans;
  scanf("%d %d",&N,&K);
  NN=N*N;
  cur=malloc(sizeof(int)*N);
  ans=malloc(sizeof(int)*N);
  for(int i=0;i<N;i++) scanf("%d",&cur[i]);
  for(int x=0;x<K;x++){
    int *nex,sum;
    sum=0;
    nex=malloc(sizeof(int)*N);
    for(int y=0;y<N;y++) nex[y]=0;
    for(int i=0;i<N;i++){
      int d,l,r;
      d=cur[i];
      l=max(0,i-d);
      r=i+d;
      nex[l]++;
      if(r+1<N) nex[r+1]--;
    }
    for(int i=1;i<N;i++) nex[i]+=nex[i-1];
    cur=nex;
    for(int i=0;i<N;i++) sum+=cur[i];
    if(sum==NN){
      printf("%d",cur[0]);
      for(int i=1;i<N;i++) printf(" %d",cur[i]);
      printf("\n");
      break;
    }
    if(x==K-1){
      printf("%d",cur[0]);
      for(int i=1;i<N;i++) printf(" %d",cur[i]);
      printf("\n");
    }
  }
  return 0;
}
