#P5607. graph

graph

Problem Description

In a directed graph which has $N$ points and $M$ edges,points are labled from 1 to n.At first I am at point $u$,at each step I will choose an output edge of the current point at uniform random,for every point $Z$,please output the possibility of reaching the point $Z$,moving exactly $K$ steps.

Input

the first line contains two positive interges$N,M$,means the number of points and edges.

next $M$ lines,contains two positive intergers$X,Y$,means an directed edge from X to Y.

next line there is an integer $Q$,means the number of queries.

next $Q$ lines,each line contains two integers $u,K$,means the first point and number of the steps.

$N\le 50,M\le 1000,Q\le 20,u\le N,K\le 10^9$.

Every point have at least one output edge.

Output

$Q$ lines,each line contains $N$ numbers,the $i$-th number means the possibility of reaching point $i$ from $u$,moving exactly $K$ steps.

In consideration of the precision error,we make some analyses,finding the answer can be represented as the form like $\frac{X}{Y}$,you only need to output $X\times Y^{10^9+5}~mod~(10^9+7)$.

You need to output an extra space at the end of the line,or you will get PE.

3 2 1 2 1 3 1 1 1
0 500000004 500000004 I am now at point $1$,by one move,with a possibity of $\frac{1}{2}$ of reaching point 2,with a possibity of $\frac{1}{2}$ of reaching point 3,so we need to output 0 0.5 0.5,but as what is said above,we need to output$1*2^{10^9+5}~mod~{10^9+7}=500000004$.