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.BufferedReader;
import java.io.InputStreamReader;

public class AIncreasingSequence {

    public static void main(String[] args) throws Exception {

        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String[] data = reader.readLine().split(" ");
        double d = Integer.parseInt(data[1].trim());

        data = reader.readLine().split(" ");
        int[] array = new int[data.length];
        int min = 0;
        array[0] = Integer.parseInt(data[0].trim());
        for (int i = 1; i < data.length; i++) {
            array[i] = Integer.parseInt(data[i].trim());

            if (array[i - 1] > array[i]) {
                int c = (int) Math.ceil((array[i - 1] - array[i]) / (d));
                if ((array[i - 1] - array[i]) / d == c) {
                    c++;
                }
                min += (int) c;

                array[i] += c * d;
            } else if (array[i - 1] == array[i]) {
                min++;
                array[i] += d;
            }
        }
        System.out.println(min);
        reader.close();
    }

}