import java.util.*;
import java.io.*;
class Main
{
	public static void main(String args[]) throws java.lang.Exception
	{
		BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));
			String h[]=inp.readLine().split(" ");

			int n=Integer.parseInt(h[0]);
			int k=Integer.parseInt(h[1]);
			String aa[]=inp.readLine().split(" ");
			long arr[]=new long[n];

			for(int i=0;i<arr.length;i++)
			{
				arr[i]=Long.parseLong(aa[i]);
			}
			// PriorityQueue<Pair>pr=new PriorityQueue<>((a,b)->(int)(a.b-b.a));
			// boolean visited[]=new boolean[n];
			// visited[0]=true;
			// pr.offer(new Pair(0,(long)0));
			long cost[]=new long[n];
			cost[1]=Math.abs(arr[1]-arr[0]);
			for(int i=2;i<n;i++)
			{
				long min=Integer.MAX_VALUE;
				for(int j=1;j<=k && i>=j;j++){
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);}
				cost[i]=min;
			}
			System.out.println(cost[n-1]);
		
	}
	
}
class Pair
{
	int a;
	long b;
	
	Pair(int e, long f)
	{
		a=e;
		b=f;
		
	}
} import java.util.*; util.* java import java.io.*; io.* java class Main
{
	public static void main(String args[]) throws java.lang.Exception
	{
		BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));
			String h[]=inp.readLine().split(" ");

			int n=Integer.parseInt(h[0]);
			int k=Integer.parseInt(h[1]);
			String aa[]=inp.readLine().split(" ");
			long arr[]=new long[n];

			for(int i=0;i<arr.length;i++)
			{
				arr[i]=Long.parseLong(aa[i]);
			}
			// PriorityQueue<Pair>pr=new PriorityQueue<>((a,b)->(int)(a.b-b.a));
			// boolean visited[]=new boolean[n];
			// visited[0]=true;
			// pr.offer(new Pair(0,(long)0));
			long cost[]=new long[n];
			cost[1]=Math.abs(arr[1]-arr[0]);
			for(int i=2;i<n;i++)
			{
				long min=Integer.MAX_VALUE;
				for(int j=1;j<=k && i>=j;j++){
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);}
				cost[i]=min;
			}
			System.out.println(cost[n-1]);
		
	}
	
} Main public static void main(String args[]) throws java.lang.Exception
	{
		BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));
			String h[]=inp.readLine().split(" ");

			int n=Integer.parseInt(h[0]);
			int k=Integer.parseInt(h[1]);
			String aa[]=inp.readLine().split(" ");
			long arr[]=new long[n];

			for(int i=0;i<arr.length;i++)
			{
				arr[i]=Long.parseLong(aa[i]);
			}
			// PriorityQueue<Pair>pr=new PriorityQueue<>((a,b)->(int)(a.b-b.a));
			// boolean visited[]=new boolean[n];
			// visited[0]=true;
			// pr.offer(new Pair(0,(long)0));
			long cost[]=new long[n];
			cost[1]=Math.abs(arr[1]-arr[0]);
			for(int i=2;i<n;i++)
			{
				long min=Integer.MAX_VALUE;
				for(int j=1;j<=k && i>=j;j++){
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);}
				cost[i]=min;
			}
			System.out.println(cost[n-1]);
		
	} main {
		BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));
			String h[]=inp.readLine().split(" ");

			int n=Integer.parseInt(h[0]);
			int k=Integer.parseInt(h[1]);
			String aa[]=inp.readLine().split(" ");
			long arr[]=new long[n];

			for(int i=0;i<arr.length;i++)
			{
				arr[i]=Long.parseLong(aa[i]);
			}
			// PriorityQueue<Pair>pr=new PriorityQueue<>((a,b)->(int)(a.b-b.a));
			// boolean visited[]=new boolean[n];
			// visited[0]=true;
			// pr.offer(new Pair(0,(long)0));
			long cost[]=new long[n];
			cost[1]=Math.abs(arr[1]-arr[0]);
			for(int i=2;i<n;i++)
			{
				long min=Integer.MAX_VALUE;
				for(int j=1;j<=k && i>=j;j++){
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);}
				cost[i]=min;
			}
			System.out.println(cost[n-1]);
		
	} BufferedReader inp = new BufferedReader (new InputStreamReader(System.in)); inp new BufferedReader (new InputStreamReader(System.in)) String h[]=inp.readLine().split(" "); h inp.readLine().split(" ") inp.readLine().split inp.readLine() inp.readLine inp " " int n=Integer.parseInt(h[0]); n Integer.parseInt(h[0]) Integer.parseInt Integer h[0] h 0 int k=Integer.parseInt(h[1]); k Integer.parseInt(h[1]) Integer.parseInt Integer h[1] h 1 String aa[]=inp.readLine().split(" "); aa inp.readLine().split(" ") inp.readLine().split inp.readLine() inp.readLine inp " " long arr[]=new long[n]; arr new long[n] n for(int i=0;i<arr.length;i++)
			{
				arr[i]=Long.parseLong(aa[i]);
			} int i=0; int i=0; i 0 i<arr.length i arr.length arr arr.length i++ i++ i {
				arr[i]=Long.parseLong(aa[i]);
			} {
				arr[i]=Long.parseLong(aa[i]);
			} arr[i]=Long.parseLong(aa[i]) arr[i] arr i Long.parseLong(aa[i]) Long.parseLong Long aa[i] aa i long cost[]=new long[n]; cost new long[n] n cost[1]=Math.abs(arr[1]-arr[0]) cost[1] cost 1 Math.abs(arr[1]-arr[0]) Math.abs Math arr[1]-arr[0] arr[1] arr 1 arr[0] arr 0 for(int i=2;i<n;i++)
			{
				long min=Integer.MAX_VALUE;
				for(int j=1;j<=k && i>=j;j++){
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);}
				cost[i]=min;
			} int i=2; int i=2; i 2 i<n i n i++ i++ i {
				long min=Integer.MAX_VALUE;
				for(int j=1;j<=k && i>=j;j++){
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);}
				cost[i]=min;
			} {
				long min=Integer.MAX_VALUE;
				for(int j=1;j<=k && i>=j;j++){
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);}
				cost[i]=min;
			} long min=Integer.MAX_VALUE; min Integer.MAX_VALUE Integer Integer.MAX_VALUE for(int j=1;j<=k && i>=j;j++){
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);} int j=1; int j=1; j 1 j<=k && i>=j j<=k j k i>=j i j j++ j++ j {
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);} {
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);} min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min) min Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min) Math.min Math cost[i-j]+Math.abs(arr[i]-arr[i-j]) cost[i-j] cost i-j i j Math.abs(arr[i]-arr[i-j]) Math.abs Math arr[i]-arr[i-j] arr[i] arr i arr[i-j] arr i-j i j min cost[i]=min cost[i] cost i min System.out.println(cost[n-1]) System.out.println System.out System System.out cost[n-1] cost n-1 n 1 String args[] args class Pair
{
	int a;
	long b;
	
	Pair(int e, long f)
	{
		a=e;
		b=f;
		
	}
} Pair int a; a long b; b Pair(int e, long f)
	{
		a=e;
		b=f;
		
	} Pair {
		a=e;
		b=f;
		
	} a=e a e b=f b f int e e long f f
import java.util.*;
import java.io.*;
class Main
{
	public static void main(String args[]) throws java.lang.Exception
	{
		BufferedReader inp = new BufferedReader (new InputStreamReader(System.in));
			String h[]=inp.readLine().split(" ");

			int n=Integer.parseInt(h[0]);
			int k=Integer.parseInt(h[1]);
			String aa[]=inp.readLine().split(" ");
			long arr[]=new long[n];

			for(int i=0;i<arr.length;i++)
			{
				arr[i]=Long.parseLong(aa[i]);
			}
			// PriorityQueue<Pair>pr=new PriorityQueue<>((a,b)->(int)(a.b-b.a));
			// boolean visited[]=new boolean[n];
			// visited[0]=true;
			// pr.offer(new Pair(0,(long)0));
			long cost[]=new long[n];
			cost[1]=Math.abs(arr[1]-arr[0]);
			for(int i=2;i<n;i++)
			{
				long min=Integer.MAX_VALUE;
				for(int j=1;j<=k && i>=j;j++){
				min=Math.min(cost[i-j]+Math.abs(arr[i]-arr[i-j]),min);}
				cost[i]=min;
			}
			System.out.println(cost[n-1]);
		
	}
	
}
class Pair
{
	int a;
	long b;
	
	Pair(int e, long f)
	{
		a=e;
		b=f;
		
	}
}