import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        int K=sc.nextInt();
        int h[]=new int[N];
        for(int i=0;i<N;++i) {
            h[i]=sc.nextInt();
        }
        int dp[]=new int[N];
        dp[0]=0;
//        dp[1]=Math.abs(h[1]-h[0]);
        Deque<Integer> dq=new ArrayDeque<>();
        for(int i=1;i<N;++i) {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        }
        System.out.println(dp[N-1]);
    }
} import java.util.ArrayDeque; ArrayDeque java.util import java.util.Deque; Deque java.util import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        int K=sc.nextInt();
        int h[]=new int[N];
        for(int i=0;i<N;++i) {
            h[i]=sc.nextInt();
        }
        int dp[]=new int[N];
        dp[0]=0;
//        dp[1]=Math.abs(h[1]-h[0]);
        Deque<Integer> dq=new ArrayDeque<>();
        for(int i=1;i<N;++i) {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        }
        System.out.println(dp[N-1]);
    }
} Main public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        int K=sc.nextInt();
        int h[]=new int[N];
        for(int i=0;i<N;++i) {
            h[i]=sc.nextInt();
        }
        int dp[]=new int[N];
        dp[0]=0;
//        dp[1]=Math.abs(h[1]-h[0]);
        Deque<Integer> dq=new ArrayDeque<>();
        for(int i=1;i<N;++i) {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        }
        System.out.println(dp[N-1]);
    } main {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        int K=sc.nextInt();
        int h[]=new int[N];
        for(int i=0;i<N;++i) {
            h[i]=sc.nextInt();
        }
        int dp[]=new int[N];
        dp[0]=0;
//        dp[1]=Math.abs(h[1]-h[0]);
        Deque<Integer> dq=new ArrayDeque<>();
        for(int i=1;i<N;++i) {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        }
        System.out.println(dp[N-1]);
    } Scanner sc=new Scanner(System.in); sc new Scanner(System.in) int N=sc.nextInt(); N sc.nextInt() sc.nextInt sc int K=sc.nextInt(); K sc.nextInt() sc.nextInt sc int h[]=new int[N]; h new int[N] N for(int i=0;i<N;++i) {
            h[i]=sc.nextInt();
        } int i=0; int i=0; i 0 i<N i N ++i ++i i {
            h[i]=sc.nextInt();
        } {
            h[i]=sc.nextInt();
        } h[i]=sc.nextInt() h[i] h i sc.nextInt() sc.nextInt sc int dp[]=new int[N]; dp new int[N] N dp[0]=0 dp[0] dp 0 0 Deque<Integer> dq=new ArrayDeque<>(); dq new ArrayDeque<>() for(int i=1;i<N;++i) {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        } int i=1; int i=1; i 1 i<N i N ++i ++i i {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        } {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        } dp[i]=Integer.MAX_VALUE dp[i] dp i Integer.MAX_VALUE Integer Integer.MAX_VALUE for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            } int j=i-1; int j=i-1; j i-1 i 1 j>=0&&j>=i-K j>=0 j 0 j>=i-K j i-K i K --j --j j {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            } {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            } dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]) dp[i] dp i Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]) Math.min Math dp[j]+Math.abs(h[i]-h[j]) dp[j] dp j Math.abs(h[i]-h[j]) Math.abs Math h[i]-h[j] h[i] h i h[j] h j dp[i] dp i System.out.println(dp[N-1]) System.out.println System.out System System.out dp[N-1] dp N-1 N 1 String args[] args public class Main {
    public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        int K=sc.nextInt();
        int h[]=new int[N];
        for(int i=0;i<N;++i) {
            h[i]=sc.nextInt();
        }
        int dp[]=new int[N];
        dp[0]=0;
//        dp[1]=Math.abs(h[1]-h[0]);
        Deque<Integer> dq=new ArrayDeque<>();
        for(int i=1;i<N;++i) {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        }
        System.out.println(dp[N-1]);
    }
} public class Main {
    public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        int K=sc.nextInt();
        int h[]=new int[N];
        for(int i=0;i<N;++i) {
            h[i]=sc.nextInt();
        }
        int dp[]=new int[N];
        dp[0]=0;
//        dp[1]=Math.abs(h[1]-h[0]);
        Deque<Integer> dq=new ArrayDeque<>();
        for(int i=1;i<N;++i) {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        }
        System.out.println(dp[N-1]);
    }
} Main
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        int K=sc.nextInt();
        int h[]=new int[N];
        for(int i=0;i<N;++i) {
            h[i]=sc.nextInt();
        }
        int dp[]=new int[N];
        dp[0]=0;
//        dp[1]=Math.abs(h[1]-h[0]);
        Deque<Integer> dq=new ArrayDeque<>();
        for(int i=1;i<N;++i) {
            dp[i]=Integer.MAX_VALUE;
            for(int j=i-1;j>=0&&j>=i-K;--j) {
                dp[i]=Math.min(dp[j]+Math.abs(h[i]-h[j]),dp[i]);
            }
        }
        System.out.println(dp[N-1]);
    }
}