P0796

Attack

Attack

chnlich 非常喜欢玩《三国志》,并善于运用策略出奇制胜。现在,他即将踏上征服世界的旅途。

敌人拥有 NN 座城市和 NN 名太守。每座城市可以视为平面直角坐标系中的一个点,城市编号为 0,1,2,…,N−10,1,2,\ldots,N-1。编号为 ii 的城市坐标为 (Xi,Yi)(X_i,Y_i),镇守该城市的太守能力值为 ZiZ_i。

每次行动时,chnlich 会选择一个边与坐标轴平行的矩形区域,并奇袭其中太守能力值第 kk 小的城市。奇袭结束后,城市和太守仍然存在。

为了防止弱点被发现,敌人有时会交换两座城市的太守。请你回答 chnlich 每次奇袭时所选太守的能力值。

输入格式

第一行包含两个整数 N,MN,M,分别表示城市与太守的数量,以及接下来发生的事件数量。

接下来 NN 行,第 ii 行包含三个整数 Xi,Yi,ZiX_i,Y_i,Z_i,表示编号为 ii 的城市坐标为 (Xi,Yi)(X_i,Y_i),其初始太守的能力值为 ZiZ_i。其中城市编号从 00 开始。

接下来 MM 行,每行描述一个事件,格式为以下两种之一:

  • QUERY x0 y0 x1 y1 k:询问以 (x0,y0)(x_0,y_0) 和 (x1,y1)(x_1,y_1) 为一对相对顶点的矩形区域中,太守能力值第 kk 小的能力值;
  • SWAP x y:交换编号为 xx 和 yy 的两座城市中的太守。

输出格式

对于每个 QUERY 操作输出一行。

如果矩形区域中不存在能力值第 kk 小的太守,输出 It doesn't exist.;否则输出一个整数,表示矩形区域中太守能力值的第 kk 小值。

样例输入

3 5
1 1 1
2 2 2
3 3 3
QUERY 1 1 3 3 3
SWAP 0 1
QUERY 2 2 4 4 1
SWAP 2 2
QUERY 2 2 3 3 3

样例输出

3
1
It doesn't exist.

数据范围

  • 对于 30%30\% 的数据,N,M≤103N,M\le 10^3;
  • 对于 40%40\% 的数据,N≤3×104N\le 3\times 10^4;
  • 另有 10%10\% 的数据,不存在 SWAP 操作;
  • 另有 10%10\% 的数据,QUERY 操作次数不超过 22;
  • 另有 10%10\% 的数据,所有城市的 YY 坐标都相等,且询问矩形的两个顶点的 YY 坐标也与所有城市的 YY 坐标相等;
  • 对于 100%100\% 的数据,N≤6×104N\le 6\times 10^4,M≤104M\le 10^4,0≤Xi,Yi,Zi≤1090\le X_i,Y_i,Z_i\le 10^9,k≤109k\le 10^9,并保证所有操作均合法。

来源与许可

本题题面与测试数据整理自 BZOJ 2674。

样例 1

输入

3 5
1 1 1
2 2 2
3 3 3
QUERY 1 1 3 3 3
SWAP 0 1
QUERY 2 2 4 4 1
SWAP 2 2
QUERY 2 2 3 3 3

输出

3
1
It doesn't exist.