import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); int t = in.nextInt() - 1; Set<Integer>[] graph = new HashSet[n]; for (int i = 0; i < n; i++) { graph[i] = new HashSet<>(); } int[] indegree = new int[n]; for (int i = 0; i < m; i++) { int from = in.nextInt() - 1; int to = in.nextInt() - 1; graph[from].add(to); indegree[to]++; } Queue<Integer> q = new LinkedList<>(); for (int i = 0; i < n; i++) { if (indegree[i] == 0) { q.offer(i); } } int[] res = new int[n]; int count = 0; while (!q.isEmpty()) { int temp = q.poll(); res[count++] = temp; for (int x : graph[temp]) { indegree[x]--; if (indegree[x] == 0) { q.offer(x); } } } int[] dp = new int[n]; dp[t] = 1; for (int i = n - 1; i >= 0; i--) { int v = res[i]; for (int j : graph[v]) { dp[v] = (dp[v] + dp[j])%100007; } } int qq = in.nextInt(); for (int i = 0; i < qq; i++) { int start = in.nextInt() - 1; System.out.println(dp[start]); } } }