温暖的签到题
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld

题目描述

给你一个长度为n的序列,初始为1,2,3...n,对其进行m次操作。
操作有两种:
1 l r  表示将区间[l,r]用 [1,2...r-l+1] 覆盖
2 l r 查询[l,r]的区间和

输入描述:

第一行包含2个数字,n,m(1 <= n,m <= 1e5)

接下来包含m行,格式如题面所示

输出描述:

对于每个操作2,输出一行一个整数表示答案
示例1

输入

复制
10 5
2 1 10
1 3 6
2 1 10
1 1 10
2 1 10

输出

复制
55
47
55