You are given a rooted tree consisting of n vertices numbered from 1 to n. The root of the tree is a vertex number 1.
Initially all vertices contain number 0. Then come q queries, each query has one of the two types:
Process the queries given in the input.
The first line contains integer n (1≤n≤3·105) −the number of vertices in the tree. The second line contains n-1 integers p2,p3,... pn (1≤pi<i), where pi is the number of the vertex that is the parent of vertex i in the tree.
The third line contains integer q (1≤q≤3·105) − the number of queries. Next q lines contain the queries, one per line. The first number in the line is type. It represents the type of the query. If type=1, then next follow space-separated integers v,x,k (1≤v≤n; 0≤x<109+7; 0≤k<109+7). If type=2, then next follows integer v (1≤v≤n) −the vertex where you need to find the value of the number.
For each query of the second type print on a single line the number written in the vertex from the query. Print the number modulo 1000000007 (109+7).
3
1 1
3
1 1 2 1
2 1
2 2
2
1
You can read about a rooted tree here: http://en.wikipedia.org/wiki/Tree_(graph_theory).