Buggy python submission (verdict: Time Limit Exceeded):
from sys import maxsize,stdin,stdout


def solve(ls, n, k):
	dp = [maxsize] * n
	dp[0] = 0
	if n == 1:
		return 0
	dp[1] = abs(ls[1] - ls[0])
	for i in range(2, n):
		j = 1
		while j <= k and i - j >= 0:
			dp[i] = (min((dp[i - j] + abs((ls[i - j]) - ls[i])), dp[i]))
			j += 1

	return str(dp[n - 1])


n, k = map(int, stdin.readline().split())
ls = list(map(int, stdin.readline().split()))
stdout.write((solve(ls, n, k)))


Fixed submission:
from sys import stdout, stdin, maxsize

n, k = map(int, stdin.readline().split())
ls = list(map(int, stdin.readline().split()))
dp = [maxsize] * (n + 1)
dp[1] = 0
if n == 1:
	print(0)
else:
	dp[2] = abs(ls[1] - ls[0])
	for i in range(3, n + 1):
		j = 1
		while j <= k and i - j >= 0:
			dp[i] = min(dp[i - j] + abs(ls[i - 1] - ls[i - 1 - j]), dp[i])
			j += 1
	print(dp[n])

Buggy python submission (verdict: Runtime Error):
from sys import maxsize,stdin,stdout


def solve(ls, n, k):
	dp = [100001] * n
	dp[0] = 0
	if n == 1:
		return 0
	dp[1] = abs(ls[1] - ls[0])
	for i in range(2, n):
		j = 1
		while j <= k and i - j >= 0:
			dp[i] = (min((dp[i - j] + abs((ls[i - j]) - ls[i])), dp[i]))
			j += 1

	return f"{dp[n - 1]}"


n, k = map(int, stdin.readline().split())
ls = list(map(int, stdin.readline().split()))
stdout.write((solve(ls, n, k)))


Fixed submission:
from sys import stdout, stdin, maxsize

n, k = map(int, stdin.readline().split())
ls = list(map(int, stdin.readline().split()))
dp = [maxsize] * (n + 1)
dp[1] = 0
if n == 1:
	print(0)
else:
	dp[2] = abs(ls[1] - ls[0])
	for i in range(3, n + 1):
		j = 1
		while j <= k and i - j >= 0:
			dp[i] = min(dp[i - j] + abs(ls[i - 1] - ls[i - 1 - j]), dp[i])
			j += 1
	print(dp[n])

Buggy python submission (verdict: Runtime Error):
from sys import maxsize,stdin,stdout


def solve(ls, n, k):
	dp = [100001] * n
	dp[0] = 0
	if n == 1:
		return 0
	dp[1] = abs(ls[1] - ls[0])
	for i in range(2, n):
		j = 1
		while j <= k and i - j >= 0:
			dp[i] = (min((dp[i - j] + abs((ls[i - j]) - ls[i])), dp[i]))
			j += 1

	return dp[n - 1]


n, k = map(int, stdin.readline().split())
ls = list(map(int, stdin.readline().split()))
stdout.write((solve(ls, n, k)))


Fixed submission:
from sys import stdout, stdin, maxsize

n, k = map(int, stdin.readline().split())
ls = list(map(int, stdin.readline().split()))
dp = [maxsize] * (n + 1)
dp[1] = 0
if n == 1:
	print(0)
else:
	dp[2] = abs(ls[1] - ls[0])
	for i in range(3, n + 1):
		j = 1
		while j <= k and i - j >= 0:
			dp[i] = min(dp[i - j] + abs(ls[i - 1] - ls[i - 1 - j]), dp[i])
			j += 1
	print(dp[n])

Buggy python submission (verdict: Time Limit Exceeded):
from sys import maxsize


def solve(ls, n, k):
	dp = [maxsize] * n
	dp[0] = 0
	if n == 1:
		return 0
	dp[1] = abs(ls[1] - ls[0])
	for i in range(2, n):
		j = 1
		while j <= k and i - j >= 0:
			dp[i] = (min((dp[i - j] + abs((ls[i - j]) - ls[i])),dp[i]))
			j+=1

	return dp[n-1]


n, k = map(int, input().split())
ls = list(map(int, input().split()))
print(solve(ls, n, k))


Fixed submission:
from sys import stdout, stdin, maxsize

n, k = map(int, stdin.readline().split())
ls = list(map(int, stdin.readline().split()))
dp = [maxsize] * (n + 1)
dp[1] = 0
if n == 1:
	print(0)
else:
	dp[2] = abs(ls[1] - ls[0])
	for i in range(3, n + 1):
		j = 1
		while j <= k and i - j >= 0:
			dp[i] = min(dp[i - j] + abs(ls[i - 1] - ls[i - 1 - j]), dp[i])
			j += 1
	print(dp[n])