#include<stdio.h>
#include<stdlib.h>

int max(int a,int b)
{
  if(a>b) return a;
  else  return b;
}

int min(int a,int b)
{
  if(a<b) return a;
  else  return b;
}

void solve(int n,int k,int *a)
{
  int i,j,l;
  int *table;
  for(i=0;i<k;i++)
  {
    table = calloc(n,sizeof(int));
    for(j=0;j<n;j++)
    {
      table[max(0,j-a[j])]++;
      table[min(n-1,j+a[j])+1]--;
    }
    for(l=0;l<n;l++)
    {
      if(l==0)
      {
        a[l] = table[l];
        continue;
      }
      a[l] = a[l-1] + table[l];
    }
  }
  for(i=0;i<n;i++)
    printf("%d ",a[i]);
  free(table);
}

int main()
{
  int n,k;
  scanf("%d %d",&n,&k);
  int *a = calloc(n,sizeof(int));
  int i;
  for(i=0;i<n;i++)
    scanf("%d",&a[i]);
  solve(n,k,a);
  free(a);
  return 0;
}