write a go solution for Description: You are given a simple connected undirected graph, consisting of n vertices and m edges. The vertices are numbered from 1 to n. A vertex cover of a graph is a set of vertices such that each edge has at least one of its endpoints in the set. Let's call a lenient vertex cover such a vertex cover that at most one edge in it has both endpoints in the set. Find a lenient vertex cover of a graph or report that there is none. If there are multiple answers, then print any of them. Input Format: The first line contains a single integer t (1<=t<=10^4) — the number of testcases. The first line of each testcase contains two integers n and m (2<=n<=10^6; n-1<=m<=min(10^6,n*(n-1)/2)) — the number of vertices and the number of edges of the graph. Each of the next m lines contains two integers v and u (1<=v,u<=n; vnequ) — the descriptions of the edges. For each testcase, the graph is connected and doesn't have multiple edges. The sum of n over all testcases doesn't exceed 10^6. The sum of m over all testcases doesn't exceed 10^6. Output Format: For each testcase, the first line should contain YES if a lenient vertex cover exists, and NO otherwise. If it exists, the second line should contain a binary string s of length n, where s_i=1 means that vertex i is in the vertex cover, and s_i=0 means that vertex i isn't. If there are multiple answers, then print any of them. Note: Here are the graphs from the first example. The vertices in the lenient vertex covers are marked red.. Output only the code with no comments, explanation, or additional text.