벽돌의 초기 색은 번호와 같고 색의 화려함은 0에서 시작한다. 구간을 한 색으로 칠하면 각 벽돌의 화려함이 색 변화의 절댓값만큼 늘어나며, 구간 합을 묻는 질의에 답한다.
홍준이는 색칠을 좋아한다.
홍준이는 생일 선물로 벽돌 nnn개를 받아 일렬로 늘어놓았다. 가장 왼쪽 벽돌이 1번이고, 오른쪽으로 갈수록 번호가 1씩 커져서 가장 오른쪽 벽돌이 nnn번이다. 처음에 iii번 벽돌의 색은 iii번 색이고, 모든 벽돌의 다채도는 0이다.
홍준이는 연속한 벽돌 구간에 같은 색을 칠한다. iii번 벽돌의 현재 색이 yyy인데 홍준이가 색 xxx로 칠하면, 그 벽돌의 다채도는 ∣x−y∣|x-y|∣x−y∣만큼 늘어나고 색은 xxx가 된다.
홍준이는 작업을 mmm번 한다. 작업은 다음 두 가지 중 하나다.
홍준이를 도와주는 프로그램을 작성하시오.
첫째 줄에 벽돌의 개수 nnn과 작업의 수 mmm이 주어진다. (1≤n,m≤100 0001 \le n, m \le 100\,0001≤n,m≤100000)
다음 mmm개 줄에는 작업이 한 줄에 하나씩 주어진다. 각 줄은 작업의 종류를 나타내는 정수 TypeTypeType(1 또는 2)으로 시작한다.
TypeTypeType이 1이면 작업 1을 나타내는 정수 LLL, RRR, XXX가 이어서 주어진다. (1≤L≤R≤n1 \le L \le R \le n1≤L≤R≤n, 1≤X≤100 000 0001 \le X \le 100\,000\,0001≤X≤100000000)
TypeTypeType이 2이면 작업 2를 나타내는 정수 LLL, RRR가 이어서 주어진다. (1≤L≤R≤n1 \le L \le R \le n1≤L≤R≤n)
작업 2를 수행할 때마다 그 구간의 다채도 합을 한 줄에 하나씩, 작업 순서대로 출력한다.