P14807 [CCPC 2024 Harbin Site] Welcome to Join the Online Meeting!

Description

You want to organize an online meeting on MeLink with $n$ participants numbered form $1$ to $n$. Each of these $n$ participants knows at least one other participant besides themselves, and the acquaintance relationship is mutual. The organization process of the meeting is as follows: First, one person creates the meeting and joins it. Then, members who have already joined the meeting can invite some of their acquaintances who are not yet in the meeting, until all $n$ participants are present. However, there are $k$ participants who are currently busy debugging code; these people can be invited to the meeting but cannot create the meeting or invite others. You want to determine if it is possible to get all $n$ participants into the meeting. If it is possible, determine an inviting plan.

Input Format

The first line contains three integers $n, m, k$ ($2 \le n \le 2 \times 10^5$, $1 \le m \le \min\{5 \times 10^5, \frac{n(n-1)}{2}\}$, $0 \le k \le n$), representing the number of participants, the number of acquaintance relationships, and the number of participants currently busy. The second line contains $k$ integers $a_1, \ldots, a_k$ ($1 \le a_i \le n$), where the $i$-th integer represents that participant $a_i$ is busy. These integers are all distinct. If $k=0$, this line will be empty, but not omitted. The next $m$ lines each contain two integers $p_i$ and $q_i$ ($1 \le p_i, q_i \le n$, $p_i \neq q_i$), indicating that $p_i$ and $q_i$ know each other. The acquaintance relationships are mutual. It is guaranteed that the same acquaintance relationship will not appear more than once, and that every participant knows at least one other person.

Output Format

If it is impossible to organize a meeting with all $n$ participants, output $\texttt{No}$ in the first line. If it is possible, output $\texttt{Yes}$ in the first line. Then, in the second line, output an integer $t$ ($1 \le t \le n$), representing the number of steps required to organize the meeting. In the following $t$ lines, each line describes one step of organizing the meeting. In the $j$-th line, first output an integer $x_j$ ($1 \leq x_j \leq n$). If $j=1$, $x_j$ represents the participant who creates the meeting; otherwise, $x_j$ must be a participant who has already joined the meeting. All $x_j$ must be distinct. Next, output an integer $y_j$ ($1 \leq y_j \leq n$), representing the number of participants invited by $x_j$ in this step. Finally, output $y_j$ integers $z_l$ ($1 \leq z_l \leq n$), representing the participants invited by $x_j$. All $z_l$ must be distinct, and no participant can be invited more than once during the entire process. You do not need to minimize $t$; any valid plan is acceptable.