编程题
### 问题描述
给定一个由 $n$ 个顶点、$m$ 条边组成的无向连通图。图中没有自环或重边。
你需要给图的边重新指定方向,使得得到的有向图不包含长度大于等于 $2$ 的路径(路径长度指经过的边数)。
### 输入格式
第一行为一个整数 $T$($1 \le T \le 10$),表示输入数据的组数。
接下来每组数据的第一行包含两个整数 $n$ 和 $m$,表示图中的顶点数和边数,$2 \le n \le 10^4$,$n-1 \le m \le 2\times 10^4$。
接下来该组数据的 $m$ 行,每行包含两个整数 $u_i$ 和 $v_i$,表示一条边所连接的两个顶点,$1 \le u_i, v_i \le n$,$u_i \neq v_i$。保证给定的图是连通的(任意两点之间存在路径)。
### 输出格式
输出为 $T$ 行数据。
如果无法指定边的方向,使得得到的有向图不包含长度大于等于二的路径,则输出一行 $\texttt{NO}$。
否则,输出一行数据,包括 $\texttt{YES}$ 与一个长度为 $m$ 的二进制字符串(只包含字符 $\texttt{0}$ 和 $\texttt{1}$),第 $i$ 个字符表示第 $i$ 条边的方向,$\texttt{0}$ 表示从 $u_i$ 指向 $v_i$,$\texttt{1}$ 表示从 $v_i$ 指向 $u_i$。边按照它们在输入中出现的顺序进行编号。
### 样例输入
```text
1
6 5
1 5
2 1
1 4
3 1
6 1
```
### 样例输出
```text
YES 10100
```