import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {

	static Scanner sc =new Scanner(System.in);
	public static void main(String[] args) {
		
		int N=sc.nextInt();
		int k=sc.nextInt();
		int a[]=new int[N];
		for(int i=0;i<N;i++)a[i]=sc.nextInt();
		
		int dp[]=new int[N+1];
		
	if(N==2)System.out.println(Math.abs(a[0]-a[1]));
	else if(N==3&&k>=2)System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])));
	else if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	}}

} import java.util.ArrayList; ArrayList java.util import java.util.Collections; Collections java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main {

	static Scanner sc =new Scanner(System.in);
	public static void main(String[] args) {
		
		int N=sc.nextInt();
		int k=sc.nextInt();
		int a[]=new int[N];
		for(int i=0;i<N;i++)a[i]=sc.nextInt();
		
		int dp[]=new int[N+1];
		
	if(N==2)System.out.println(Math.abs(a[0]-a[1]));
	else if(N==3&&k>=2)System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])));
	else if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	}}

} Main static Scanner sc =new Scanner(System.in); sc new Scanner(System.in) public static void main(String[] args) {
		
		int N=sc.nextInt();
		int k=sc.nextInt();
		int a[]=new int[N];
		for(int i=0;i<N;i++)a[i]=sc.nextInt();
		
		int dp[]=new int[N+1];
		
	if(N==2)System.out.println(Math.abs(a[0]-a[1]));
	else if(N==3&&k>=2)System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])));
	else if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	}} main {
		
		int N=sc.nextInt();
		int k=sc.nextInt();
		int a[]=new int[N];
		for(int i=0;i<N;i++)a[i]=sc.nextInt();
		
		int dp[]=new int[N+1];
		
	if(N==2)System.out.println(Math.abs(a[0]-a[1]));
	else if(N==3&&k>=2)System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])));
	else if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	}} int N=sc.nextInt(); N sc.nextInt() sc.nextInt sc int k=sc.nextInt(); k sc.nextInt() sc.nextInt sc int a[]=new int[N]; a new int[N] N for(int i=0;i<N;i++)a[i]=sc.nextInt(); int i=0; int i=0; i 0 i<N i N i++ i++ i a[i]=sc.nextInt(); a[i]=sc.nextInt() a[i] a i sc.nextInt() sc.nextInt sc int dp[]=new int[N+1]; dp new int[N+1] N+1 N 1 if(N==2)System.out.println(Math.abs(a[0]-a[1]));
	else if(N==3&&k>=2)System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])));
	else if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	} N==2 N 2 System.out.println(Math.abs(a[0]-a[1])) System.out.println System.out System System.out Math.abs(a[0]-a[1]) Math.abs Math a[0]-a[1] a[0] a 0 a[1] a 1 if(N==3&&k>=2)System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])));
	else if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	} N==3&&k>=2 N==3 N 3 k>=2 k 2 System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]))) System.out.println System.out System System.out Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])) Math.min Math Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]) Math.abs(a[0]-a[1]) Math.abs Math a[0]-a[1] a[0] a 0 a[1] a 1 Math.abs(a[1]-a[2]) Math.abs Math a[1]-a[2] a[1] a 1 a[2] a 2 Math.abs(a[0]-a[2]) Math.abs Math a[0]-a[2] a[0] a 0 a[2] a 2 if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	} N==3&&k<2 N==3 N 3 k<2 k 2 System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2])) System.out.println System.out System System.out Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]) Math.abs(a[0]-a[1]) Math.abs Math a[0]-a[1] a[0] a 0 a[1] a 1 Math.abs(a[1]-a[2]) Math.abs Math a[1]-a[2] a[1] a 1 a[2] a 2 {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	} dp[0]=0 dp[0] dp 0 0 dp[1]=0 dp[1] dp 1 0 dp[2]=Math.abs(a[0]-a[1]) dp[2] dp 2 Math.abs(a[0]-a[1]) Math.abs Math a[0]-a[1] a[0] a 0 a[1] a 1 if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]); k>=2 k 2 dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])) dp[3] dp 3 Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])) Math.min Math Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]) Math.abs(a[0]-a[1]) Math.abs Math a[0]-a[1] a[0] a 0 a[1] a 1 Math.abs(a[1]-a[2]) Math.abs Math a[1]-a[2] a[1] a 1 a[2] a 2 Math.abs(a[0]-a[2]) Math.abs Math a[0]-a[2] a[0] a 0 a[2] a 2 dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]) dp[3] dp 3 Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]) Math.abs(a[0]-a[1]) Math.abs Math a[0]-a[1] a[0] a 0 a[1] a 1 Math.abs(a[1]-a[2]) Math.abs Math a[1]-a[2] a[1] a 1 a[2] a 2 for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		} int i=4; int i=4; i 4 i<N+1 i N+1 N 1 i++ i++ i {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		} {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		} List<Integer> list=new ArrayList<Integer>(); list new ArrayList<Integer>() for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));} int j=k; int j=k; j k j>=1 j 1 j-- j-- j {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));} {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));} if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1])); i-j-1>=0 i-j-1 i-j-1 i j 1 0 list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1])) list.add list dp[i-j]+Math.abs(a[i-j-1]-a[i-1]) dp[i-j] dp i-j i j Math.abs(a[i-j-1]-a[i-1]) Math.abs Math a[i-j-1]-a[i-1] a[i-j-1] a i-j-1 i-j-1 i j 1 a[i-1] a i-1 i 1 dp[i]=Collections.min(list) dp[i] dp i Collections.min(list) Collections.min Collections list System.out.println(dp[N]) System.out.println System.out System System.out dp[N] dp N String[] args args public class Main {

	static Scanner sc =new Scanner(System.in);
	public static void main(String[] args) {
		
		int N=sc.nextInt();
		int k=sc.nextInt();
		int a[]=new int[N];
		for(int i=0;i<N;i++)a[i]=sc.nextInt();
		
		int dp[]=new int[N+1];
		
	if(N==2)System.out.println(Math.abs(a[0]-a[1]));
	else if(N==3&&k>=2)System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])));
	else if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	}}

} public class Main {

	static Scanner sc =new Scanner(System.in);
	public static void main(String[] args) {
		
		int N=sc.nextInt();
		int k=sc.nextInt();
		int a[]=new int[N];
		for(int i=0;i<N;i++)a[i]=sc.nextInt();
		
		int dp[]=new int[N+1];
		
	if(N==2)System.out.println(Math.abs(a[0]-a[1]));
	else if(N==3&&k>=2)System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])));
	else if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	}}

} Main
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {

	static Scanner sc =new Scanner(System.in);
	public static void main(String[] args) {
		
		int N=sc.nextInt();
		int k=sc.nextInt();
		int a[]=new int[N];
		for(int i=0;i<N;i++)a[i]=sc.nextInt();
		
		int dp[]=new int[N+1];
		
	if(N==2)System.out.println(Math.abs(a[0]-a[1]));
	else if(N==3&&k>=2)System.out.println(Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2])));
	else if(N==3&&k<2)System.out.println(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]));
	
	else {
		dp[0]=0;
		dp[1]=0;
		dp[2]=Math.abs(a[0]-a[1]);
		if(k>=2)
		dp[3]=Math.min(Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]),Math.abs(a[0]-a[2]));
		else dp[3]=Math.abs(a[0]-a[1])+Math.abs(a[1]-a[2]);
		
		for(int i=4;i<N+1;i++) {
			List<Integer> list=new ArrayList<Integer>();
			
			//dp[i]=Math.min(dp[i-1]+Math.abs(a[i-2]-a[i-1]),dp[i-2]+Math.abs(a[i-3]-a[i-1]));
			for(int j=k;j>=1;j--) {if(i-j-1>=0)list.add(dp[i-j]+Math.abs(a[i-j-1]-a[i-1]));}
		dp[i]=Collections.min(list);
			
		}
		System.out.println(dp[N]);
	}}

}
