implicit none
integer(8),allocatable,dimension(:)::dp,h
integer i,n,j,k,l
 
read(5,*)n,k
allocate(dp(n),h(n))
read(5,*)(h(i),i=1,n)
 
dp(1)=0
dp(2:n)=100000000
 
do j=1,n
do l=2,k
dp(j+l)=min(dp(j+l),dp(j)+abs(h(j)-h(j+l)))
enddo
enddo

write(6,*) dp(n)
 
deallocate(dp,h)
end