2101. 拨打电话 / Dialing

用一棵有根树 T 表示简化的电话网络。在 T 中,每个叶结点对应一个具体的通话终端,而每个内部结点表示可以处理通话请求的交换节点。每个通话终端都有一个自己的号码 a_i,但是为了让交换节点正确处理通话请求,通常需要在原始号码的前面加上若干前缀编号,用于指明被呼叫者在电话网络中所处的位置。例如,从中国大陆的其它地区拨打北京市的固定电话,则需要在前面按顺序加上长途冠码 0 及北京市区号 10,才能正确地拨通对应的电话。在 T 中,从通话终端 u 向通话终端 v 拨打电话时,正确的电话号码应通过沿着在 T 上从 uv 的最短路,按顺序连接各交换节点相应前缀号(即最靠近 u 的交换节点的前缀号应在最前,最靠近 v 的交换节点的前缀号应在最后)后,加上 v 本身的号码得到。

T 中,根据发出请求的通话终端、接受请求的通话终端与交换节点的关系,每个交换节点各有 3 种可能为空的前缀号,分别为:

  • 从该交换节点 vT 中对应子树内向子树外拨打电话时需要加的前缀号 b_v,如从中国大陆拨打其它国家或地区的电话时需加国际冠码 00

  • 从该交换节点 vT 中对应子树外向子树内拨打电话时需要加的前缀号 c_v,如从其它国家或地区向中国大陆拨打电话时需加中国大陆的国际区码 86

  • 从该交换节点 vT 中任意一子结点(子结点可能为某一通话终端,也可能是其它交换节点,后同)向 v 发出请求,v 需要将该请求转发给另外一子结点进行处理时的需要加的前缀号 d_v,如从中国大陆的其它地区拨打北京市的固定电话 ABCDEFGH,需要使用长途冠码 0,对应电话号码为 010-ABCDEFGH;而从其它国家或地区拨打北京市的同一电话,则只需在国际冠码之后拨打 86-10-ABCDEFGH,不需要使用长途冠码 0

现在给出 T 中若干个通话请求,每个请求由拨出结点和该请求在该结点拨打的电话号码组成,请判断拨打的电话号码是否对应唯一的通话终端。如果是,请求出该通话终端;否则,请求出与该电话号码对应的通话终端数量。

输入

输入的第一行包含两个正整数 n, q,表示电话网络 T 的结点数和通话请求的数量。保证 2\le n\le 10^51\le q\le 10^5

接下来 n 行,每行输入两个非负整数和一个字符串 f_it_is_i,分别由一个空格隔开,描述 T 的第 i 个结点。其中,f_i>0 时表示结点 iT 上的父结点编号,f_i=0 表示结点 iT 的根;t_i\in{0,1} 表示结点 i 是否为叶结点,

  • 如果 t_i=1,则结点 i 为叶结点,此时 s_i 是仅由字符 09 构成的非空字符串,表示结点 i 的原始电话号码 a_i

  • 如果 t_i = 0,则结点 i 为内部交换节点,此时 s_i 包含三个由单个 / 字符隔开的仅由字符 09 构成的字符串(可能为空),分别为前缀号 b_ic_id_i

保证 0\le f_i < i,所有叶结点的 a_i 及所有内部 b_i, c_i, d_i 的总长不超过 3\times 10^6

接下来 q 行,每行输入一个正整数 p_i 和一个仅包含字符 09 的非空字符串 r_i,表示在结点 p_i 拨打电话号码为 r_i 的通话请求。保证 p_i 对应叶结点,\sum_{i=1}^q \left|r_i\right| \le 3\times10^6

输出

对每个通话请求输出一行。如果拨打的电话号码对应唯一的通话终端,输出 1 x,其中正整数 x 是该通话终端的编号;否则,输出 0 y,其中非负整数 y 是匹配的通话终端的数量。

样例

标准输入 复制文本
24 10
0 0 //
1 0 00/86/0
2 0 /10/
3 1 62793001
3 1 62770334
3 1 62783054
3 1 62757487
3 1 62562503
2 0 /20/
9 1 88331234
9 1 83561784
1 0 001/852/
12 1 23587000
1 0 010/81/0
14 0 /3/
15 0 /5841/2
16 1 4111
16 1 7926
14 0 /6/
19 0 /6879/
20 1 4508
20 1 4421
19 0 /6850/
23 1 6618
7 62793001
7 01062793001
10 62770334
10 01062770334
8 02083561784
10 0085223587000
17 27926
17 0668794508
21 4421
21 68506618
标准输出 复制文本
1 4
0 0
0 0
1 5
1 11
1 13
1 18
1 21
1 22
1 24
标准输入 复制文本
6 6
0 0 0/0/1
1 0 0/1/01
1 1 00
1 1 01
2 1 00
2 1 01
5 00
5 0100
5 0101
6 01
6 0100
6 0101
标准输出 复制文本
0 0
1 3
0 2
0 0
0 2
1 4
标准输入 复制文本
103 104
0 0 //0
1 0 /138/
2 0 /22/22
3 1 0306
3 1 1001
2 0 /23/23
6 1 5440
6 1 6288
1 0 /3/
9 0 /3254/3254
10 1 0753
9 0 /5530/5530
12 1 1111
9 0 /5876/5876
14 1 5835
9 0 /5962/5962
16 1 4481
9 0 /6450/6450
18 1 5703
1 0 /4992/
20 0 /8/8
21 1 0321
21 1 1242
1 0 /55/
24 0 /929/929
25 1 8633
24 0 /932/932
27 1 7879
24 0 /933/933
29 1 1900
29 1 7008
24 0 /934/934
32 1 2800
32 1 4747
24 0 /941/941
35 1 3126
35 1 3341
35 1 3448
24 0 /943/943
39 1 2104
39 1 2121
39 1 2136
39 1 2331
24 0 /949/949
44 1 5840
24 0 /952/952
46 1 1122
46 1 2411
24 0 /962/962
49 1 0653
49 1 1384
49 1 1650
49 1 3225
24 0 /963/963
54 1 3200
54 1 5875
24 0 /977/977
57 1 1201
1 0 /558/
59 0 /72/72
60 1 7111
59 0 /94/94
62 1 5151
1 0 /76/
64 0 /220/220
65 1 2356
64 0 /221/221
67 1 2646
64 0 /223/223
69 1 8555
69 1 9565
64 0 /224/224
72 1 5511
64 0 /231/231
74 1 1462
64 0 /232/232
76 1 3066
76 1 5555
76 1 6200
64 0 /234/234
80 1 3800
64 0 /245/245
82 1 6450
64 0 /247/247
84 1 8999
64 0 /254/254
86 1 5020
86 1 5081
64 0 /256/256
89 1 5642
64 0 /261/261
91 1 1717
64 0 /262/262
93 1 7605
1 0 /761/
95 0 /22/22
96 1 0120
95 0 /58/58
98 1 1805
95 0 /73/73
100 1 5300
95 0 /77/7
102 1 1234
4 0559298633
5 0762212646
7 0559344747
8 0559771201
11 0762343800
13 0559633200
15 0762311462
17 0559337008
19 0761771234
22 0355301111
23 0762611717
26 0138236288
28 9432104
30 9522411
31 0762545020
33 0499281242
34 9621384
36 9495840
37 0762456450
38 0558945151
40 0499280321
41 0358765835
42 9623225
43 0558727111
45 9413448
47 0332540753
48 9331900
50 0762627605
51 0762478999
52 0762326200
53 0762565642
55 0138235440
56 9521122
58 0359624481
61 0559635875
63 0559621650
66 0138220306
68 0138221001
70 0761220120
71 0761581805
73 2238555
75 0559432121
77 0559432136
78 2245511
79 0364505703
81 2325555
83 2239565
85 2323066
87 0559432331
88 0559342800
90 0559413126
92 2202356
94 0559327879
97 0559413341
99 735300
101 0762545081
103 0559620653
22 81242
83 0559432104
37 0762239565
73 0358765835
34 0762478999
58 0558727111
99 0559337008
47 0138235440
56 0762545081
47 0761771234
73 2611717
97 0332540753
58 0762326200
48 9999999999
23 0332540753
23 0762326200
78 2565642
45 0762212646
63 0559413126
34 0762627605
58 0762611717
101 0559413448
34 0762323066
101 0762202356
63 00559495840
28 0358765835
75 2323066
28 9298633
63 0499281242
66 0499281242
83 0559413126
101 0559298633
85 0499281242
15 0762212646
101 0499280321
70 0559635875
53 9413126
103 0138220306
88 2611717000
45 0762545081
94 0559344747
63 0762325555
38 0364505703
101 0762245511
36 0762239565
48 0499281242
88 0559413341
标准输出 复制文本
1 26
1 68
1 34
1 58
1 81
1 55
1 75
1 31
1 103
1 13
1 92
1 8
1 40
1 48
1 87
1 23
1 51
1 45
1 83
1 63
1 22
1 15
1 53
1 61
1 38
1 11
1 30
1 94
1 85
1 79
1 90
1 7
1 47
1 17
1 56
1 52
1 4
1 5
1 97
1 99
1 70
1 41
1 42
1 73
1 19
1 78
1 71
1 77
1 43
1 33
1 36
1 66
1 28
1 37
1 101
1 88
1 50
1 23
1 40
1 71
1 15
1 85
1 61
1 31
1 7
1 88
1 103
1 92
1 11
1 79
0 0
1 11
1 79
1 90
1 68
1 36
1 94
1 92
1 38
1 77
1 66
0 0
1 15
1 77
1 26
1 23
1 23
1 36
1 26
1 23
1 68
1 22
1 56
1 36
1 4
0 0
1 88
1 34
1 78
1 19
1 73
1 71
1 23
1 37

提示

为方便理解题意,该样例使用了实际存在的电话号码。其表示的电话网络见下图。

  • 第一个询问的通话请求是从北京大学计算机学院至清华大学后勤综合服务热线/校内查号台。因为这两个结点的父结点均为结点 3(对应北京市),且父结点 d_3=\varepsilon,所以直接拨打对应电话即可。第二个询问为第一个询问加上区号的版本,在本题中认为该询问的电话号码无法拨通。

  • 第四个询问为香港科技大学(广州)向清华大学招生办公室发出通话请求。由于两个通话终端的父结点不同,拨打电话时应加上前缀 b_9 + d_2 + c_3= 010。第三个询问与第四个询问类似,但是没有加上前缀,故无法拨通。

  • 第五个询问为中国计算机学会致电广东省计算机学会,计算应拨打电话号码的方式为 b_3 + d_2 + c_9 + a_{11}

  • 第六个询问为从香港科技大学(广州)向香港科技大学计算机科学与工程系(Department of Computer Science and Engineering)发出通话请求。拨打电话时,应先按顺序拨打中国大陆的国际冠码 b_2= 00 和中国香港的国际区码 c_{12}= 852,然后再键入原始电话号码 a_{13}(完整的计算方法为 b_9 + b_2 + d_1 + c_{12} + a_{13})。

  • 第七个询问为从东京大学研究生院计算机科学专业办公室拨至情报理工学系研究科招生办公室。由于本乡校区的内部电话需要在 4 位电话之前加上 d_{16}= 2,正确的电话号码为 2 + 7926 = 27926

  • 第八个询问为东京大学研究生院计算机科学专业办公室向大阪大学研究生院信息科学研究科办公室拨打电话。拨打电话时,应先后加上长途冠码 d_{14}= 0、大阪的区号(市外局番)c_{19}= 6 和吹田校区所属的子区域区号(市内局番)c_{20}= 6879。应拨打的电话号码的完整表达式为 b_{16}+b_{15}+d_{14}+c_{19}+c_{20}+a_{21}

  • 第九个询问为从大阪大学研究生院信息科学研究科办公室拨打电话给同样位于吹田校区的生命机能研究科。d_{20}=\varepsilon 意味着吹田校区的内部电话不需要加前缀,可以直接拨打对应 4 位电话号码。

  • 第十个询问为从大阪大学研究生院信息科学研究科办公室向大阪大学信息科学系的办公室拨打电话。由于本科的信息科学系位于丰中校区,所以需要在原始电话号码前加上丰中校区对应的子区域区号(市内局番)c_{23}= 6850(实际拨打电话时,也可以使用丰中校区的内部电话前缀 172,但这不在本题考虑范围之内)。

从结点 2 的子树中拨打 0100,可以匹配到结点 3 和结点 5;拨打 0101,可以匹配到结点 4 和结点 6。因为一个结点播出的电话号码不能匹配自己,所以只有第二个询问和第六个询问拨出的电话号码对应唯一的通话终端。

登录以提交代码。
单点时限 2 秒
内存限制 512 MB
提交 2
通过 1