#S10004. 垃圾清除

垃圾清除

题目描述

给定一个 HHWW 列的网格。记从上往下数第 ii 行、从左往右数第 jj 列的格子为 (i,j)(i, j)

网格上有 NN 个垃圾;第 ii 个垃圾位于格子 (Xi,Yi)(X_i, Y_i)

给定 QQ 个查询,请你按顺序处理它们。每个查询属于以下两种类型之一:

  • 类型 11:输入格式为 1 x。请输出第 xx 行的垃圾数量。然后,将第 xx 行的所有垃圾从网格中清除。
  • 类型 22:输入格式为 2 y。请输出第 yy 列的垃圾数量。然后,将第 yy 列的所有垃圾从网格中清除。

输入格式

第一行包含三个正整数 H,W,NH, W, N —— 分别表示网格的行数、列数和垃圾的数量。

接下来 NN 行,每行包含两个正整数 XiX_iYiY_i —— 表示第 ii 个垃圾的坐标。

N+2N+2 行包含一个正整数 QQ —— 表示查询的数量。

接下来 QQ 行,每行描述一个查询,格式为 1 x2 y

输出格式

输出共 QQ 行。第 ii 行应包含一个整数,表示对第 ii 个查询的回答。

样例输入 1

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

样例输出 1

2
1
0
1
0

样例输入 2

1 2 1
1 2
7
2 1
2 1
2 1
2 1
2 1
2 1
2 1

样例输出 2

0
0
0
0
0
0
0

样例输入 3

4 4 16
1 1
1 2
1 3
1 4
2 1
2 2
2 3
2 4
3 1
3 2
3 3
3 4
4 1
4 2
4 3
4 4
7
2 1
1 1
2 2
1 2
2 3
1 3
2 4

样例输出 3

4
3
3
2
2
1
1

说明

样例解释

在第一个样例中,初始时垃圾分别位于格子 (1,2),(1,3),(3,4),(3,1),(2,2)(1,2), (1,3), (3,4), (3,1), (2,2)

  • 在第 11 个查询中,第 11 行有 22 个垃圾,分别位于 (1,2)(1,2)(1,3)(1,3),因此输出 22。接着这些垃圾被清除;剩下的垃圾位于 (3,4),(3,1),(2,2)(3,4), (3,1), (2,2)
  • 在第 22 个查询中,第 22 行有 11 个垃圾,位于 (2,2)(2,2),因此输出 11。接着该垃圾被清除;剩下的垃圾位于 (3,4),(3,1)(3,4), (3,1)
  • 在第 33 个查询中,第 22 列没有任何垃圾,因此输出 00
  • 在第 44 个查询中,第 44 列有 11 个垃圾,位于 (3,4)(3,4),因此输出 11。接着该垃圾被清除;剩下的垃圾位于 (3,1)(3,1)
  • 在第 55 个查询中,第 22 行没有任何垃圾,因此输出 00

数据范围

  • 对于所有测试点,保证 1H,W,N2×1051 \le H, W, N \le 2 \times 10^5
  • 保证 1XiH1 \le X_i \le H1YiW1 \le Y_i \le W
  • 保证所有的垃圾位置互不相同,即对于 iji \neq j,有 (Xi,Yi)(Xj,Yj)(X_i, Y_i) \neq (X_j, Y_j)
  • 对于所有测试点,保证 1Q2×1051 \le Q \le 2 \times 10^5
  • 对于类型 11 的查询,保证 1xH1 \le x \le H
  • 对于类型 22 的查询,保证 1yW1 \le y \le W
  • 保证所有的输入数值均为整数。