#P1062E. Company

    ID: 3017 Type: RemoteJudge 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>binary searchdata structuresdfs and similargreedytrees*2300

Company

No submission language available for this problem.

Description

The company XX has nn employees numbered from 11 through nn. Each employee uu has a direct boss pup_u (1pun1 \le p_u \le n), except for the employee 11 who has no boss. It is guaranteed, that values pip_i form a tree. Employee uu is said to be in charge of employee vv if uu is the direct boss of vv or there is an employee ww such that ww is in charge of vv and uu is the direct boss of ww. Also, any employee is considered to be in charge of himself.

In addition, for each employee uu we define it's level lv(u)lv(u) as follow:

  • lv(1)=0lv(1)=0
  • lv(u)=lv(pu)+1lv(u)=lv(p_u)+1 for u1u \neq 1

In the near future, there are qq possible plans for the company to operate. The ii-th plan consists of two integers lil_i and rir_i, meaning that all the employees in the range [li,ri][l_i, r_i], and only they, are involved in this plan. To operate the plan smoothly, there must be a project manager who is an employee in charge of all the involved employees. To be precise, if an employee uu is chosen as the project manager for the ii-th plan then for every employee v[li,ri]v \in [l_i, r_i], uu must be in charge of vv. Note, that uu is not necessary in the range [li,ri][l_i, r_i]. Also, uu is always chosen in such a way that lv(u)lv(u) is as large as possible (the higher the level is, the lower the salary that the company has to pay the employee).

Before any plan is operated, the company has JATC take a look at their plans. After a glance, he tells the company that for every plan, it's possible to reduce the number of the involved employees exactly by one without affecting the plan. Being greedy, the company asks JATC which employee they should kick out of the plan so that the level of the project manager required is as large as possible. JATC has already figured out the answer and challenges you to do the same.

The first line contains two integers nn and qq (2n1000002 \le n \le 100\,000, 1q1000001 \le q \le 100\,000) — the number of employees and the number of plans, respectively.

The second line contains n1n-1 integers p2,p3,,pnp_2, p_3, \dots, p_n (1pin1 \le p_i \le n) meaning pip_i is the direct boss of employee ii.

It is guaranteed, that values pip_i form a directed tree with the root of 11.

Each of the following qq lines contains two integers lil_i and rir_i (1li<rin1 \le l_i<r_i \le n) — the range of the employees, involved in the corresponding plan.

Print qq lines, each containing two integers — the number of the employee which should be kicked from the corresponding plan and the maximum possible level of the project manager in that case.

If there are more than one way to choose that employee, print any of them.

Input

The first line contains two integers nn and qq (2n1000002 \le n \le 100\,000, 1q1000001 \le q \le 100\,000) — the number of employees and the number of plans, respectively.

The second line contains n1n-1 integers p2,p3,,pnp_2, p_3, \dots, p_n (1pin1 \le p_i \le n) meaning pip_i is the direct boss of employee ii.

It is guaranteed, that values pip_i form a directed tree with the root of 11.

Each of the following qq lines contains two integers lil_i and rir_i (1li<rin1 \le l_i<r_i \le n) — the range of the employees, involved in the corresponding plan.

Output

Print qq lines, each containing two integers — the number of the employee which should be kicked from the corresponding plan and the maximum possible level of the project manager in that case.

If there are more than one way to choose that employee, print any of them.

Samples

Sample Input 1

11 5
1 1 3 3 3 4 2 7 7 6
4 6
4 8
1 11
9 11
8 11

Sample Output 1

4 1
8 1
1 0
11 3
8 1

Note

In the example:

In the first query, we can choose whether 44 or 55 or 66 and the project manager will be 33.

In the second query, if we choose any employee other than the employee 88, the project manager will be 11. If we choose 88, the project manager will be 33. Since lv(3)=1>lv(1)=0lv(3)=1 > lv(1)=0, choosing 88 is the best strategy.

In the third query, no matter how we choose the employee, the project manager will always be 11.

In the fourth query, if we choose 99 or 1010 then the project manager will be 33. If we choose 1111 then the project manager will be 77. Since lv(7)=3>lv(3)=1lv(7)=3>lv(3)=1, we choose 1111 as the answer.