# #debug def dprint(*ar): # print(*ar) pass N, K = map(int, input().split()) vX = list(map(int, input().split())) vA = list(map(int, input().split())) # init # 0-origin initX = vX[K-1] initA = vA[K-1] L, R = (initX-initA), (initX+initA) for _ in range(N): # for plus prevX, prevA = initX, initA for i in range(K, N): dist = abs(vX[i] - prevX) dprint(dist, i, L, R) if dist > prevA: break else: prevX = vX[i] prevA = max(vA[i], prevA - dist) R = max(R, prevX + prevA) L = min(L, prevX - prevA) # for minus prevX, prevA = initX, initA for i in range(K-2, -1, -1): dist = abs(vX[i] - prevX) dprint(dist, i, L, R) if dist > prevA: break else: prevX = vX[i] prevA = max(vA[i], prevA - dist) R = max(R, prevX + prevA) L = min(L, prevX - prevA) res = sum([L<=x<=R for x in vX]) print(res)