#P1988. 【美团】2025-3-8-好对

【美团】2025-3-8-好对

题目描述

薯条哥有一个结点总数为 nn 且根节点编号为 11 的有根树。

ii 个结点的编号为 ii ,所携带的字母为 aia_i

薯条哥是一名程序员,他认为一对 (u,v)(u,v) 是好对,当且仅当从节点 uu 到节点 vv 的简单路径上依次拼接得到字符串 SS 的子序列中不存在BUGBUG

薯条哥会提出 qq 次询问,你需要帮助她回答(u,v)(u,v)是不是好对。

子序列:子序列是原始序列的一个子集,其元素顺序保持不变,但可以选择性地删除一些元素。换句话说,子序列是从原始序列中挑选出来的元素集合,这些元素在原始序列中的相对顺序保持一致。

例如:S=BAUCDEGS=BAUCDEGBUGBUG为字符串 SS 的一个子序列,但BGABGA不是 SS 的子序列。

输入描述

第一行两个整数 n,q(3n,q105)n,q(3 \le n,q \le 10^5),分别表示节点个数和询问次数。

第二行 nn 个整数,第 ii 个为 fatheri(1fatherin)father_i(1 \le father_i \le n),表示第 ii 个节点的父节点,特别的 father1=0father_1= 0

第三行 nn 个字符,第 ii 个为 aia_i,表示第 ii 个节点所携带的字母,保证所有字母都是大写字母

接下来 qq 行,每行两个整数 u,v(1u,vn)u,v(1\le u,v\le n),表示询问的起点和终点。

输出描述

qq 行,每行一个字符串,若 (u,v)(u,v) 是好对输出YESYES,否则输出NONO

样例

输入

5 3
0 1 1 2 2
AUGBC
4 3
4 5
4 1

输出

NO
YES
YES