#NP0125. L34 NP0125-飞剑回旋镖

0

L34 NP0125-飞剑回旋镖

题目描述

小码哥正在攀爬尖塔,他的面前出现了排成一排的nn只大颚虫,编号从11到nn,还好,他有一张强力卡牌:飞剑回旋镖。由于小码哥的特殊能力,他可以控制飞剑回旋镖的伤害与打击对象。

具体的,小码哥会选择飞剑的起点ll和终点r(l≤r)r(l\leq r),飞剑的起始伤害为11,它会从ll出发,对ll造成11点伤害,然后伤害增加一点,飞向l+1l+1,对其造成22点伤害,依次类推,直到对rr造成伤害后,飞回小码哥手里。每次扔出飞剑回旋镖,起始伤害均为11。

有时,小码哥会突然想知道某一只大颚虫受了多少点伤害,你需要告诉他正确的答案。显然,一开始没有扔出飞剑,所以大颚虫均未受伤。

输入格式

第一行输入两个整数n,mn,m。其中nn表示大颚虫的数量,mm表示操作次数; 接下来mm行,每行一个操作,第一个整数为optopt,若opt=1opt=1,表示一次飞剑,接下来两个整数l,rl,r,表示起点和终点;若opt=2opt=2,表示一次询问,接下来一个整数xx,表示询问的大颚虫编号。

输出格式

对于每次询问操作,输出一行一个整数,表示询问的答案。输出在模109+710^9+7下的结果即可。

样例输入 #1

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

样例输出 #1

2
3

说明/提示

保证1≤n,m≤105,1≤l≤r≤n1\leq n,m\leq 10^5,1\leq l\leq r\leq n。