B. Ярослав и время
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Ярослав играет в игру «Время». В игре у него есть таймер, на котором изображено время, которое ему осталось жить. Как только таймер показывает 0, игровой персонаж Ярослава умирает и игра заканчивается. Так же в игре существует n часовых станций, станция номер i находится в точке (xi, yi) плоскости. Зайдя на станцию номер i, игрок увеличивает текущее время на своем таймере на ai. Станции одноразовые, то есть если игрок второй раз зайдет на какую-нибудь станцию, то время на его таймере не увеличится.

На перемещение между станциями игрок тратит d·dist единиц времени, где dist — расстояние, пройденное игроком, а d — некоторая константа. Расстояние между станциями i и j определяется как |xi - xj| + |yi - yj|.

Изначально игрок находится на станции номер 1, и у игрока осталось строго больше нуля и меньше одной единицы времени. На станции номер 1 за единицу денег можно увеличить время на таймере на единицу времени (можно покупать только целое количество единиц времени).

Сейчас Ярослава интересует вопрос: сколько единиц денег нужно ему, чтобы попасть на станцию номер n? Помогите Ярославу. Считайте, что время покупки и увеличения времени на таймере пренебрежимо мало.

Входные данные

В первой строке содержатся целые числа n и d (3 ≤ n ≤ 100, 103 ≤ d ≤ 105) — количество станций и константа из условия.

Во второй строке заданы n - 2 целых числа: a2, a3, ..., an - 1 (1 ≤ ai ≤ 103). В следующих n строках содержатся координаты станций. В i-той из них записаны два целых чисел xi, yi (-100 ≤ xi, yi ≤ 100).

Гарантируется, что никакие две станции не находятся в одной точке.

Выходные данные

В единственную строку выведите целое число — ответ на задачу.

Примеры
Входные данные
3 1000
1000
0 0
0 1
0 3
Выходные данные
2000
Входные данные
3 1000
1000
1 0
1 1
1 2
Выходные данные
1000