


The first line of input contains an integer ‘T’, denoting the number of test cases. The test cases follow.
The first line of each test case contains two integers ‘N’ and ‘M’, which denotes the number of people in the given set and the number of rows of the matrix ‘DISLIKE’.
The next M lines contain two integers, DISLIKE[i][0] and DISLIKE[i][1], denoting the two people who dislike each other.
For each test case, print a single line containing 1 if it is possible to split everyone into two groups under the given conditions otherwise print 0.
The output of each test case will be printed in a separate line.
You do not need to print anything. It has already been taken care of. Just implement the given function.
1<= T <= 10
1 <= N <= 2000
0 <= M <= 5000
DISLIKE[i].size = 2
1 <= DISLIKE[i][0],DISLIKE[i][1] <=N
DISLIKE[i][0] != DISLIKE[i][1], for any valid i
Where ’T’ is the number of test cases, and N denotes the number of people in the set’, M denotes the size of the given matrix ‘DISLIKE’.
Time Limit: 1 sec.
The idea is to represent the given problem as a graph.
We will create a graph in which each person is represented by a node and there is an undirected edge between all pairs of people who dislike each other.Then we will assign one of the two colors(0 or 1) to every vertex using graph traversal algorithms such that no two adjacent vertices have the same color. It means we are dividing the set of people into two parts. The first group of people has representative color 1 and the second group of people has representative color 2. Whenever assigning color creates a conflict, it means it is not possible to divide the set of N people into two groups. We are using Depth-First Search for this.
The steps are as follows: