import 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 cost[] =new int[N];
		for(int i=0;i<N;i++)
		{
		
			cost[i]= sc.nextInt();
		}
		int dp[] =new int [N+1];
		Arrays.fill(dp,Integer.MAX_VALUE);
		dp[0]=0;
		dp[1]=Math.abs(cost[1]-cost[0]);
		//dp[1]=cost[1]-cost[0];
		
		for(int i=2;i<N;i++)
		{
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		}
		
		System.out.println(dp[N-1]);
	}

} import java.util.*; util.* java public class Main
{
	public static void main(String [] args)
	{
		Scanner sc= new Scanner(System.in);
		int N= sc.nextInt();
		int K =sc.nextInt();
		
		int cost[] =new int[N];
		for(int i=0;i<N;i++)
		{
		
			cost[i]= sc.nextInt();
		}
		int dp[] =new int [N+1];
		Arrays.fill(dp,Integer.MAX_VALUE);
		dp[0]=0;
		dp[1]=Math.abs(cost[1]-cost[0]);
		//dp[1]=cost[1]-cost[0];
		
		for(int i=2;i<N;i++)
		{
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		}
		
		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 cost[] =new int[N];
		for(int i=0;i<N;i++)
		{
		
			cost[i]= sc.nextInt();
		}
		int dp[] =new int [N+1];
		Arrays.fill(dp,Integer.MAX_VALUE);
		dp[0]=0;
		dp[1]=Math.abs(cost[1]-cost[0]);
		//dp[1]=cost[1]-cost[0];
		
		for(int i=2;i<N;i++)
		{
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		}
		
		System.out.println(dp[N-1]);
	} main {
		Scanner sc= new Scanner(System.in);
		int N= sc.nextInt();
		int K =sc.nextInt();
		
		int cost[] =new int[N];
		for(int i=0;i<N;i++)
		{
		
			cost[i]= sc.nextInt();
		}
		int dp[] =new int [N+1];
		Arrays.fill(dp,Integer.MAX_VALUE);
		dp[0]=0;
		dp[1]=Math.abs(cost[1]-cost[0]);
		//dp[1]=cost[1]-cost[0];
		
		for(int i=2;i<N;i++)
		{
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		}
		
		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 cost[] =new int[N]; cost new int[N] N for(int i=0;i<N;i++)
		{
		
			cost[i]= sc.nextInt();
		} int i=0; int i=0; i 0 i<N i N i++ i++ i {
		
			cost[i]= sc.nextInt();
		} {
		
			cost[i]= sc.nextInt();
		} cost[i]= sc.nextInt() cost[i] cost i sc.nextInt() sc.nextInt sc int dp[] =new int [N+1]; dp new int [N+1] N+1 N 1 Arrays.fill(dp,Integer.MAX_VALUE) Arrays.fill Arrays dp Integer.MAX_VALUE Integer Integer.MAX_VALUE dp[0]=0 dp[0] dp 0 0 dp[1]=Math.abs(cost[1]-cost[0]) dp[1] dp 1 Math.abs(cost[1]-cost[0]) Math.abs Math cost[1]-cost[0] cost[1] cost 1 cost[0] cost 0 for(int i=2;i<N;i++)
		{
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		} int i=2; int i=2; i 2 i<N i N i++ i++ i {
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		} {
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		} for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 } int j=i-1,jump=0; int j=i-1 j i-1 i 1 jump=0; jump 0 j>=0 && jump<K j>=0 j 0 jump<K jump K j--,jump++ j-- j jump++ jump {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 } {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 } dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]) dp[i] dp i Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]) Math.min Math dp[i] dp i Math.abs(cost[i]-cost[j]) +dp[j] Math.abs(cost[i]-cost[j]) Math.abs Math cost[i]-cost[j] cost[i] cost i cost[j] cost j dp[j] dp j 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 cost[] =new int[N];
		for(int i=0;i<N;i++)
		{
		
			cost[i]= sc.nextInt();
		}
		int dp[] =new int [N+1];
		Arrays.fill(dp,Integer.MAX_VALUE);
		dp[0]=0;
		dp[1]=Math.abs(cost[1]-cost[0]);
		//dp[1]=cost[1]-cost[0];
		
		for(int i=2;i<N;i++)
		{
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		}
		
		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 cost[] =new int[N];
		for(int i=0;i<N;i++)
		{
		
			cost[i]= sc.nextInt();
		}
		int dp[] =new int [N+1];
		Arrays.fill(dp,Integer.MAX_VALUE);
		dp[0]=0;
		dp[1]=Math.abs(cost[1]-cost[0]);
		//dp[1]=cost[1]-cost[0];
		
		for(int i=2;i<N;i++)
		{
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		}
		
		System.out.println(dp[N-1]);
	}

} Main
import 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 cost[] =new int[N];
		for(int i=0;i<N;i++)
		{
		
			cost[i]= sc.nextInt();
		}
		int dp[] =new int [N+1];
		Arrays.fill(dp,Integer.MAX_VALUE);
		dp[0]=0;
		dp[1]=Math.abs(cost[1]-cost[0]);
		//dp[1]=cost[1]-cost[0];
		
		for(int i=2;i<N;i++)
		{
			 for(int j=i-1,jump=0;j>=0 && jump<K;j--,jump++)
			 {
			 	dp[i]=Math.min(dp[i],Math.abs(cost[i]-cost[j]) +dp[j]);
			 }
		}
		
		System.out.println(dp[N-1]);
	}

}