A sequence a0, a1, ..., at - 1 is called increasing if ai - 1 < ai for each i: 0 < i < t.

You are given a sequence b0, b1, ..., bn - 1 and a positive integer d. In each move you may choose one element of the given sequence and add d to it. What is the least number of moves required to make the given sequence increasing?

Input

The first line of the input contains two integer numbers n and d (2 ≤ n ≤ 2000, 1 ≤ d ≤ 106). The second line contains space separated sequence b0, b1, ..., bn - 1 (1 ≤ bi ≤ 106).

Output

Output the minimal number of moves needed to make the sequence increasing.

Examples

Input

4 2
1 3 3 2


Output

3

import java.io.*;
import java.util.*;

public class A11 {

	BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
	StringTokenizer st = null;
	
	private void solution() throws IOException {
		int n = nextInt(), d = nextInt(), m[] = new int[n], l = 0, k = 0;
		for (int i = 0; i < n; i ++) m[i] = nextInt();
		for (int i = 1; i < n; i ++) {
			if (m[i] <= m[i-1]) {
				k = (m[i-1] - m[i])/d + 1;
				m[i] += k*d;
				l += k;
			}
		}
		System.out.println(l);
	}
	
	String nextToken() throws IOException {
        if (st == null || !st.hasMoreTokens()) {
            st = new StringTokenizer(bf.readLine());
        }
        return st.nextToken();
    }
	
	int nextInt() throws IOException {
		return Integer.parseInt(nextToken());
	}
	
	public static void main(String[] args)throws IOException {
		new A11().solution();
	}
}
