#include <bits/stdc++.h>
using namespace std;
int dp[100000];
int rec(int arr[],int i,int n,int kk){
if(i==n-1)
return 0;
if(i>n-1)
return INT_MAX;
if(dp[i]!=-1)
return dp[i];
// int f=INT_MAX;
// if(i+1<n)
// f=rec(arr,i+1,n)+abs(arr[i]-arr[i+1]);
// int k=INT_MAX;
// if(i+2<n)
// k=rec(arr,i+2,n)+abs(arr[i]-arr[i+2]);
int cost=INT_MAX;
for(int l=1;l<=kk;l++){
if(i+l<n)
cost=min(cost,rec(arr,i+l,n,kk)+abs(arr[i]-arr[i+l]));
}
return dp[i]=cost;
}
int main() {
memset(dp,-1,sizeof(dp));
int n,k;
cin>>n>>k;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
}
cout<<rec(arr,0,n,k)<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZHBbMTAwMDAwXTsKaW50IHJlYyhpbnQgYXJyW10saW50IGksaW50IG4saW50IGtrKXsKCWlmKGk9PW4tMSkKCXJldHVybiAwOwoJaWYoaT5uLTEpCglyZXR1cm4gSU5UX01BWDsKCWlmKGRwW2ldIT0tMSkKCXJldHVybiBkcFtpXTsKCQoJLy8gaW50IGY9SU5UX01BWDsKCS8vIGlmKGkrMTxuKQoJLy8gZj1yZWMoYXJyLGkrMSxuKSthYnMoYXJyW2ldLWFycltpKzFdKTsKCS8vIGludCBrPUlOVF9NQVg7CgkvLyBpZihpKzI8bikKCS8vIGs9cmVjKGFycixpKzIsbikrYWJzKGFycltpXS1hcnJbaSsyXSk7CglpbnQgY29zdD1JTlRfTUFYOwoJZm9yKGludCBsPTE7bDw9a2s7bCsrKXsKCQlpZihpK2w8bikKCQljb3N0PW1pbihjb3N0LHJlYyhhcnIsaStsLG4sa2spK2FicyhhcnJbaV0tYXJyW2krbF0pKTsKCX0KCQoJCglyZXR1cm4gZHBbaV09Y29zdDsKfQppbnQgbWFpbigpIHsKCW1lbXNldChkcCwtMSxzaXplb2YoZHApKTsKCWludCBuLGs7CgljaW4+Pm4+Pms7CglpbnQgYXJyW25dOwoJZm9yKGludCBpPTA7aTxuO2krKyl7CgkJY2luPj5hcnJbaV07Cgl9Cgljb3V0PDxyZWMoYXJyLDAsbixrKTw8ZW5kbDsKCXJldHVybiAwOwp9