### BUGGY CODE ###

import sys
input=sys.stdin.readline
sys.setrecursionlimit(10 ** 8)
from itertools import accumulate
from itertools import permutations
from itertools import combinations
from collections import defaultdict
from collections import Counter
import fractions
import math
from collections import deque
from bisect import bisect_left
from bisect import insort_left
import itertools
from heapq import heapify
from heapq import heappop
from heapq import heappush
import heapq
from copy import deepcopy
from decimal import Decimal
alf = list("abcdefghijklmnopqrstuvwxyz")
ALF = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
#import numpy as np
INF = float("inf")
#d = defaultdict(int)
#d = defaultdict(list)
import numpy as np
N,K = map(int,input().split())
A = list(map(int,input().split()))
if N == 1:
    print(1)
else:
    old = np.array(A)
    if K <= 5:
        for _ in range(K):
            Next = np.zeros(N,dtype = np.int64)
            for i in range(N):
                a = old[i]
                MIN = max(0,i-a)
                MAX = min(N-1,i+a)
                Next[MIN:MAX+1] += 1
            old = Next
        old = list(old)
        print(*old)
    else:
        for _ in range(5):
            Next = np.zeros(N,dtype = np.int64)
            for i in range(N):
                a = old[i]
                MIN = max(0,i-a)
                MAX = min(N-1,i+a)
                Next[MIN:MAX+1] += 1
            old = Next
        for _ in range(K-5):
            Next = np.zeros(N,dtype = np.int64)
            vmax = max(old)
            for i in range(N):
                p = 1
                if i - vmax >= 0:
                    p += vmax
                    if old[i-vmax] != vmax:
                        p -= 1
                else:
                    p += i
                if i + vmax <= N-1:
                    p += vmax
                    if old[i+vmax] != vmax:
                        p -= 1
                else:
                    p += (N-1-i)
                Next[i] = p
            old = Next
        print(*old)

        

### FIXED CODE ###

import sys
input=sys.stdin.readline
sys.setrecursionlimit(10 ** 8)
from itertools import accumulate
from itertools import permutations
from itertools import combinations
from collections import defaultdict
from collections import Counter
import fractions
import math
from collections import deque
from bisect import bisect_left
from bisect import insort_left
import itertools
from heapq import heapify
from heapq import heappop
from heapq import heappush
import heapq
from copy import deepcopy
from decimal import Decimal
alf = list("abcdefghijklmnopqrstuvwxyz")
ALF = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
#import numpy as np
INF = float("inf")
#d = defaultdict(int)
#d = defaultdict(list)
N,K = map(int,input().split())
A = list(map(int,input().split()))
if N == 1:
    print(1)
else:
    
    old = A
    for _ in range(K):
        li = [0]*N
        for i in range(N):
            MIN = max(0,i-old[i])
            MAX = min(N-1,i+old[i])
            li[MIN] += 1
            if MAX != N-1:
                li[MAX+1] -= 1
        s = 0
        for i in range(N):
            s += li[i]
            old[i] = s
        if min(old) == N:
            break
    print(*old)