'use strict'
function main(input) {
  // お決まりの処理
  const tmp = input.split('\n');
  const info = tmp[0].split(' ').map((elem) => parseInt(elem, 10));
  const N = info[0];
  const K = info[1];
  const h = tmp[1].split(' ').map((elem) => parseInt(elem, 10));
  
  // 動的計画法にお決まりの必要な配列を作って満たす処理
  let dp = new Array(N).fill(Infinity);
  // 最初は0
  dp[0] = 0;
  for(let i = 0; i < N; i++){
      for(let j = 0; j <= K; j++){
        if(i-j >= 0) {
          dp[i] = Math.min(dp[i],dp[i-j] + Math.abs(h[i] - h[i - j])); 
        }
      }
  }
  console.log(dp[N - 1]);
}
main(require('fs').readFileSync('/dev/stdin', 'utf8'));
