编程题
### 问题描述
在小齐的农场里,她的奶牛们喜欢进行一种有趣的游戏。游戏的规则如下:给定一个有 $N$ 个节点和 $M$ 条边的有向图,小齐的奶牛们会进行两人对战。
游戏开始时,两个标记分别放在图中的两个不同节点上。每个回合,一个玩家(大脑)选择一个标记,并且另一个玩家(蹄子)选择标记沿着一个出边移动。两个标记不能位于同一节点上。如果在某一时刻,蹄子无法进行有效移动,大脑获胜。如果游戏无限继续下去,蹄子获胜。
现在给定 $Q$ 个查询,每个查询表示标记的起始节点。对于每个查询,请输出哪个玩家将获胜。
### 输入格式
第一行包含两个整数 $N$ 和 $M$。
接下来的 $M$ 行,每行包含两个整数 $a$ 和 $b$,表示从节点 $a$ 到节点 $b$ 存在一条有向边。
接下来一行包含一个整数 $Q$。
接下来 $Q$ 行,每行包含两个整数 $x$ 和 $y$,表示标记的起始节点。
### 输出格式
输出一个长度为 $Q$ 的字符串,每个字符为 $B$ 表示大脑获胜,$H$ 表示蹄子获胜。
### 样例输入
```
9 10
1 2
2 3
3 4
4 7
3 5
1 6
6 8
8 9
9 6
7 2
4
1 5
1 2
1 6
2 4
```
### 样例输出
```
BHHB
```
### 评测数据规模
$2 \leq N \leq 10^5$,$1 \leq M \leq 2 \times 10^5$,$1 \leq Q \leq 10^5$。