递交申请
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

今年的元旦,学校给同学们安排了整整3天的假期!但为了便于统计,所有需要离校度假的同学都需要向辅导员提交一份申请。

但是众所周知,大学生是一种怕麻烦的生物,于是大家都倾向于把自己的申请交给身边的同学,让他们帮忙把申请交上去。

然而众所周知,大学生也是一种爱拖延的生物,每位同学在收到别人给他的文件之后,都会再拖延一会儿,然后把申请交给自己拜托的那位同学。

然而元旦假期近在眼前,要是没办法在导员放假前把申请送到ta手中可就糟糕了。今年的假期,会有哪些冤种大学生没有办法成功申请离校呢?

现有 n 位同学,他们每人都有一份申请需要提交。对于第 i(1 \le i \le n) 位同学,他手中有两个数 x_it_i ,分别表示该位同学递交申请书的目标同学编号以及他“扣押”申请书的时间。 这意味着:对于某一时刻 t_0 ,若这位同学此时得到了一份申请,他将在 t_i 时间后(即第 t_0+t_i 时刻)将这份申请递交给编号为 x_i 的同学。申请书的传递不需要时间。x_i 的值为0,则表示这份申请将被递交到辅导员手中。

在最开始的时候,所有人的手中都拥有一份申请书(他自己的那份),也就是说第 i 位同学一定会在第 t_i 时刻将一份申请书传给 x_i 号同学。

对于这个复杂的传递提交过程,syh同学一共有 q 个问题。对于第 k(1 \le k \le q) 个问题,他想知道:若导员将截止时刻设置为 d_k,编号为 x_k 的同学的申请表能否在截止时间前成功送到导员处?

输入描述:

输入数据共有n+q+1行。

第一行两个整数 n,q (1 \le n,q \le 1 \times 10^5),分别表示需要递交申请的同学数目以及syh同学的问题数。

接下来 n 行,每一行有2个整数 x_i,t_i (0 \le x_i \le n, 1 \le t_i \le 1 \times 10^4),具体含义详见题目描述。

接下来 q 行,每一行有2个整数 d_k,x_k (1 \le d_k \le 1 \times 10^9,1 \le x_k \le n),表示一次询问。具体含义详见题目描述。

输出描述:

输出共 q 行,每一行对应一次询问。

若该次询问中的同学的申请表可以在指定时间送到导员处,则输出"Holiday"(不含引号),这表示这位同学可以离校享受他的快乐小长假了。

否则输出"Stay"(不含引号),这意味着这位同学只能留在学校过节了。
示例1

输入

复制
4 3
0 4
1 5
0 2
1 2
2 3
6 2
7 4

输出

复制
Holiday
Stay
Holiday

说明

3号同学直接将申请交给导员,耗时为 2;当导员将截止时间设置为 2 时,他刚好可以成功递交申请。
2号同学将申请交给1号同学,再由他转交给导员,耗时为 5+4=9;因此若截止时间为 6,他无法及时交表。
4号同学也将申请交给了一号同学,耗时为 2+4=6;因此可以在截止时间前将申请交上去。

备注:

若导员设定的提交截止时间为 d ,这意味着第 d+1 及之后的时刻提交的申请是无效的。
申请在同学们手中传来传去,最终又传回到了自己手里也是可能的。