#abc298c. [abc298_c]Cards Query Problem

[abc298_c]Cards Query Problem

问题描述

我们有 NN 个编号为 11NN 的盒子,最初都是空的,并且有无限数量的空白卡片。
按顺序处理 QQ 个查询。查询类型有三种,请看如下说明。

  • 1 i j colon\\colon 在一张空白卡片上写下数字 ii,然后将其放入盒子 jj
  • 2 i colon\\colon升序报告盒子 ii 中所有卡片上的数字。
  • 3 i colon\\colon升序报告所有包含数字 ii 的卡片所在的盒子编号。

注意以下内容。

  • 对于第二种查询,如果盒子 ii 包含多张相同数字的卡片,则该数字应被打印的次数等于这些卡片的数量。
  • 对于第三种查询,即使一个盒子包含多张数字为 ii 的卡片,该盒子的盒子编号也只应打印一次。

约束条件

  • 1leqN,Qleq2times1051 \\leq N, Q \\leq 2 \\times 10^5
  • 对于第一种查询:
    • 1leqileq2times1051 \\leq i \\leq 2 \\times 10^5
    • 1leqjleqN1 \\leq j \\leq N
  • 对于第二种查询:
    • 1leqileqN1 \\leq i \\leq N
    • 在执行此查询时,盒子 ii 包含一些卡片。
  • 对于第三种查询:
    • 1leqileq2times1051 \\leq i \\leq 2 \\times 10^5
    • 在执行此查询时,一些盒子包含数字 ii 的卡片。
  • 最多要报告 2times1052 \\times 10^5 个数字。
  • 输入中的所有值均为整数。

输入

从标准输入中以以下格式给出:

NN QQ mathrmquery1\\mathrm{query}_1 mathrmquery2\\mathrm{query}_2 vdots\\vdots mathrmqueryQ\\mathrm{query}_Q

这里,mathrmqueryq\\mathrm{query}_q 表示第 qq 个查询,其格式为以下之一:

11 ii jj 22 ii 33 ii

输出

按顺序响应第二和第三种查询。
对于每个查询,打印一行,其中包含要报告的元素按升序排列,之间用空格隔开。


示例输入 1

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

示例输出 1

1 2
1 1 2
1 4
4

让我们按顺序处理查询。

  • 在一张卡片上写下 11,然后将其放入盒子 11
  • 在一张卡片上写下 22,然后将其放入盒子 44
  • 在一张卡片上写下 11,然后将其放入盒子 44
  • 盒子 44 包含数字 1122 的卡片。
    • 以此顺序打印 1122
  • 在一张卡片上写下 11,然后将其放入盒子 44
  • 盒子 44 包含数字 111122 的卡片。
    • 注意应该打印两次 11
  • 盒子 1144 包含数字 11 的卡片。
    • 注意尽管盒子 44 包含两张数字为 11 的卡片,但只打印一次 44
  • 盒子 44 包含数字 22 的卡片。

示例输入 2

1
5
1 1 1
1 2 1
1 200000 1
2 1
3 200000

示例输出 2

1 2 200000
1