#P1102. 预约区间统计

预约区间统计

题目描述

图书馆有一排连续编号的位置,编号从 11nn。管理员会陆续记录一些预约区间,每次新增的预约都可以看作一个新的预约编号。

现在需要处理 mm 次操作:

  • 1 l r:新增一条预约记录,覆盖区间 [l,r][l,r]
  • 2 l r:询问当前已有多少条预约记录与区间 [l,r][l,r] 至少有一个公共位置。

换句话说,对于每次询问,你要统计已经加入的区间中,有多少个区间与询问区间相交。

输入格式

第一行包含两个整数 n,mn,m,分别表示位置数量和操作次数。

接下来 mm 行,每行表示一个操作,格式为 op,l,rop,l,r,实际输入中三个整数用空格隔开。

输出格式

对于每个 op=2op=2 的询问,输出一行一个整数,表示答案。

样例

10 5
1 1 5
2 1 5
1 3 7
2 1 7
2 3 7
1
2
2
10 5
1 1 5
2 1 5
1 6 10
2 1 10
2 6 10
1
2
1

样例说明

第一组样例中,加入 [1,5][1,5] 后,第一个询问的答案为 11。继续加入 [3,7][3,7] 后,后两个询问区间都与这两条记录相交,所以答案均为 22

第二组样例中,已有区间为 [1,5][1,5][6,10][6,10] 时,区间 [1,10][1,10] 与两条记录都相交,而区间 [6,10][6,10] 只与第二条记录相交。

数据范围

对于 20%20\% 的数据,满足 1n,m1001\le n,m\le100

对于 60%60\% 的数据,满足 1n103,1m5×1041\le n\le10^3,1\le m\le5\times10^4

对于 100%100\% 的数据,满足 1n,m5×1041\le n,m\le5\times10^4