#5099. Problem 2. Hoof and Brain

0

Problem 2. Hoof and Brain

Problem 2. Hoof and Brain

USACO 2022 US Open Contest, Platinum

Given a directed graph with NN vertices and MM edges (2N1052 \leq N \leq 10^5, 1M21051 \leq M \leq 2 \cdot 10^5), Farmer John's cows like to play the following game with two players.

Place two tokens on distinct nodes in the graph. Each turn, one player, the brain, will choose a token that must be moved along an outgoing edge. The other player, the hoof, will choose which edge to move the token along. The two tokens can never be on the same node. If at some point the hoof can't make a valid move, the brain wins. If the game continues indefinitely, the hoof wins.

You are given QQ queries (1Q1051 \leq Q \leq 10^5) indicating the starting nodes of the two tokens. For each query, output which player will win.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains NN and MM.

The next MM lines each contain two integers aa and bb, denoting an edge from aa to bb.

The graph does not contain self-loops or multiple edges.

The next line contains QQ.

The final QQ lines each contain two integers xx and yy satisfying 1x,yN1\le x,y\le N and xyx\neq y, indicating the starting nodes of the tokens.

OUTPUT FORMAT (print output to the terminal / stdout):

A string of length QQ, where each character is B for the brain winning and H for the hoof winning.

Note: the time limit for this problem is 4s, twice the default.

SAMPLE INPUT:


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

SAMPLE OUTPUT:


BHHB

The brain can win the first game by selecting node 5; then the hoof has no valid move.

The brain can win the last game by selecting node 4 and then node 7; then the hoof has no valid move.

The hoof wins the other games.

SCORING: Test cases 2-3 satisfy N100N\le 100, M200M\le 200.Test cases 4-9 satisfy N5000N\le 5000.Test cases 10-21 satisfy no additional constraints.

Problem credits: Danny Mittal