시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 512 MB 63 15 8 16.000%

문제

홍준이는 색칠을 좋아해요.

홍준이는 생일 선물로 n개의 벽돌을 선물 받았고 일렬로 늘어놓았습니다. 편의상 가장 왼쪽의 벽돌이 1번 벽돌이고 가장 오른쪽의 n번 벽돌까지 순서대로 있다고 하겠습니다. i번 벽돌의 색은 처음에 i번 색깔이었습니다. 그리고 각 벽돌의 ‘다채도’는 0이었습니다.

색칠을 좋아하는 홍준이는 이제 연속한 벽돌들에 같은 색을 칠하려고 합니다. i번 벽돌의 색이 현재 y이고, 홍준이가 x라는 색으로 칠하려고 한다면, 그 돌의 다채도는 |x-y|만큼 증가하게 됩니다.

홍준이는 m번의 작업을 합니다. 작업은 다음 두 가지 중 하나입니다.

  1. L번째 벽돌부터 R번째 벽돌까지 색깔 X로 칠합니다.
  2. L번째 벽돌부터 R번째 벽돌까지의 다채도의 합을 구합니다.

홍준이를 도와주는 프로그램을 작성하세요.

입력

첫째 줄에 벽돌의 개수를 나타내는 n과 작업의 수 m이 주어집니다. (1≤n, m≤100,000)

둘째 줄부터 m개의 줄은 작업의 종류를 알려주는 하나의 정수 Type(1 또는 2)으로 시작한다.

Type이 1이라면, 작업 1을 나타내는 3개의 정수 L, R, X가 주어진다. (1≤L≤R≤n, 1≤X≤100,000,000)

Type이 2라면, 작업 2를 나타내는 2개의 정수 L, R이 주어진다. (1≤L≤R≤n)

출력

작업 2를 수행할 때마다 구간의 다채도의 합을 한 줄에 하나씩 순서대로 출력합니다.

예제 입력 1

3 4
1 1 3 4
2 1 1
2 2 2
2 3 3

예제 출력 1

3
2
1