C. DZY любит цвета
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

DZY любит цвета, он обожает рисовать.

В один «цветастый» день DZY получил цветную ленточку, состоящую из n сегментов (пронумерованных от 1 до n слева направо). Цвет i-го сегмента ленточки изначально равняется i. Насыщенность цвета каждого сегмента ленточки изначально равна 0.

Как известно, DZY любит рисовать. Иногда, он берет кисть цвета x и проводит ей линию на ленточке. В таком случае закрашиваются некоторые последовательные сегменты. Представим, что текущий цвет сегмента i равняется y. Когда сегмент закрашивается кистью цвета x, его цвет становится равен x, а насыщенность цвета сегмента возрастает на |x - y|.

DZY хочет выполнить m операций, каждая операция может быть:

  1. Покрасить все сегменты с номерами от l до r (обе границы включительно) кистью цвета x.
  2. Посчитать сумму насыщенностей цветов сегментов с номерами от l до r (обе границы включительно).

Поможете DZY?

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

В первой строке записано два целых числа через пробел n, m (1 ≤ n, m ≤ 105).

В каждой из следующих m строк сначала содержится целое число type (1 ≤ type ≤ 2), обозначающее тип текущей операции.

Если type = 1, то следом на этой строке идут еще 3 целых числа l, r, x (1 ≤ l ≤ r ≤ n; 1 ≤ x ≤ 108), описывающих операцию типа 1.

Если type = 2, то следом на этой строке идут еще 2 целых числа l, r (1 ≤ l ≤ r ≤ n), описывающих операцию типа 2.

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

Для каждой операции типа 2, выведите ответ в отдельной строке — сумму насыщенностей.

Примеры
Входные данные
3 3
1 1 2 4
1 2 3 5
2 1 3
Выходные данные
8
Входные данные
3 4
1 1 3 4
2 1 1
2 2 2
2 3 3
Выходные данные
3
2
1
Входные данные
10 6
1 1 5 3
1 2 7 9
1 10 10 11
1 3 8 12
1 1 10 3
2 1 10
Выходные данные
129
Примечание

В первом примере изначально цвет каждого сегмента равен [1, 2, 3], а насыщенность цвета каждого сегмента равна [0, 0, 0].

После первой операции цвета меняются на [4, 4, 3], насыщенности равняются [3, 2, 0].

После второй операции цвета меняются на [4, 5, 5], насыщенности равняются [3, 3, 2].

Таким образом, ответ на единственную операцию типа 2 равен 8.