import java.io.*;
import java.util.*;
class BUGLIFE
{
static int colour[];
static boolean[] visited;
public static void main
(String args
[]) {
int T
=Integer.
parseInt(br.
readLine()); for(int t=1;t<=T;t++)
{
String in
[]=br.
readLine().
split(" "); //declaring array of arraylist such that the ith index of
// the array will have all its neighbours in a list
colour=new int[n+2];
visited=new boolean[n+2];
for(int i=0;i<n+2;i++)
graph[i]=new ArrayList<Integer>();
//now for m different interactions
for(int i=0;i<m;i++)
{
in=br.readLine().split(" ");
graph[a].add(b);
graph[b].add(a);
}
boolean check=dfs(1);
if(!check)//
System.
out.
println("Scenario #"+t
+":\nSuspicious bugs found!"); else
System.
out.
println("Scenario #"+t
+":\nNo suspicious bugs found!");
}
}
static boolean dfs(int rootnode)
{
Stack<Integer> mystack =new Stack<Integer>();
mystack.push(rootnode);
colour[rootnode]=1;
visited[rootnode]=true;
while(!mystack.isEmpty())
{
int node=mystack.peek();
int child=get_unvisited_uncoloured_childnode(node,colour[node]);
if(child
==Integer.
MIN_VALUE)//may day may day {return false;}
else if(child==0)
mystack.pop();
else
mystack.push(child);
}
return true;
}
static int get_unvisited_uncoloured_childnode(int node,int base_colour)
{
//for each V in the adjacent list of u
ArrayList<Integer> adj_list=graph[node];
Iterator<Integer> it=adj_list.iterator();
while(it.hasNext())
{
int hold=it.next();
if(visited[hold]==false)//if hold is not yet visited
{
colour[hold]=base_colour*-1;
visited[hold]=true;
return hold;
}
else if(visited[hold]==true && colour[hold]==base_colour)
{
//not bipartite
}
}
return 0;
}
}
CgoJCQoJCQlpbXBvcnQgamF2YS5pby4qOwoJCQlpbXBvcnQgamF2YS51dGlsLio7CgkJCWNsYXNzIEJVR0xJRkUKCQkJewoJCQkJc3RhdGljIGludCBjb2xvdXJbXTsKCQkJCXN0YXRpYyBib29sZWFuW10gdmlzaXRlZDsKCQkJCXN0YXRpYyBBcnJheUxpc3QgPEludGVnZXI+IFtdIGdyYXBoOwoJCQkJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkKCQkJCXRocm93cyBJT0V4Y2VwdGlvbgoJCQkJewoJCQkJCUJ1ZmZlcmVkUmVhZGVyIGJyPW5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoU3lzdGVtLmluKSk7CgkJCQkJaW50IFQ9SW50ZWdlci5wYXJzZUludChici5yZWFkTGluZSgpKTsKCQkJCQlmb3IoaW50IHQ9MTt0PD1UO3QrKykKCQkJCQl7CgkJCQkJCVN0cmluZyBpbltdPWJyLnJlYWRMaW5lKCkuc3BsaXQoIiAiKTsKCQkJCQkJaW50IG49SW50ZWdlci5wYXJzZUludChpblswXSk7CgkJCQkJCWludCBtPUludGVnZXIucGFyc2VJbnQoaW5bMV0pOwoJCQkJCQkvL2RlY2xhcmluZyBhcnJheSBvZiBhcnJheWxpc3Qgc3VjaCB0aGF0IHRoZSBpdGggaW5kZXggb2YKCQkJCQkJLy8gdGhlIGFycmF5IHdpbGwgaGF2ZSBhbGwgaXRzIG5laWdoYm91cnMgaW4gYSBsaXN0CgkJCQkJCWdyYXBoPW5ldyBBcnJheUxpc3RbbisyXTsKCQkJCQkJY29sb3VyPW5ldyBpbnRbbisyXTsKCQkJCQkJdmlzaXRlZD1uZXcgYm9vbGVhbltuKzJdOwoJCQkJCQlBcnJheXMuZmlsbCh2aXNpdGVkLCBmYWxzZSk7CgoJCQkJCQlmb3IoaW50IGk9MDtpPG4rMjtpKyspCgkJCQkJCQlncmFwaFtpXT1uZXcgQXJyYXlMaXN0PEludGVnZXI+KCk7CgkJCQkJCS8vbm93IGZvciBtIGRpZmZlcmVudCBpbnRlcmFjdGlvbnMKCQkJCQkJZm9yKGludCBpPTA7aTxtO2krKykKCQkJCQkJewoJCQkJCQkJaW49YnIucmVhZExpbmUoKS5zcGxpdCgiICIpOwoJCQkJCQkJaW50IGE9SW50ZWdlci5wYXJzZUludChpblswXSk7CgkJCQkJCQlpbnQgYj1JbnRlZ2VyLnBhcnNlSW50KGluWzFdKTsKCQkJCQkJCWdyYXBoW2FdLmFkZChiKTsKCQkJCQkJCWdyYXBoW2JdLmFkZChhKTsKCQkJCQkJCQoJCQkJCQl9CgkJCQkJCWJvb2xlYW4gY2hlY2s9ZGZzKDEpOwoJCQkJCQkKCQkJCQkJaWYoIWNoZWNrKS8vCgkJCQkJCQlTeXN0ZW0ub3V0LnByaW50bG4oIlNjZW5hcmlvICMiK3QrIjpcblN1c3BpY2lvdXMgYnVncyBmb3VuZCEiKTsKCQkJCQkJZWxzZQoJCQkJCQkJU3lzdGVtLm91dC5wcmludGxuKCJTY2VuYXJpbyAjIit0KyI6XG5ObyBzdXNwaWNpb3VzIGJ1Z3MgZm91bmQhIik7CgkJCQkJCQoJCQkJCQkKCQkJCQl9CgkJCQkJCgkJCQl9CgkJCQkKCQkJCXN0YXRpYyBib29sZWFuIGRmcyhpbnQgcm9vdG5vZGUpCgkJCQl7CgkJCQkJU3RhY2s8SW50ZWdlcj4gbXlzdGFjayA9bmV3IFN0YWNrPEludGVnZXI+KCk7CgkJCQkJbXlzdGFjay5wdXNoKHJvb3Rub2RlKTsKCQkJCQljb2xvdXJbcm9vdG5vZGVdPTE7CgkJCQkJdmlzaXRlZFtyb290bm9kZV09dHJ1ZTsKCQkJCQl3aGlsZSghbXlzdGFjay5pc0VtcHR5KCkpCgkJCQkJewoJCQkJCQlpbnQgbm9kZT1teXN0YWNrLnBlZWsoKTsKCQkJCQkJaW50IGNoaWxkPWdldF91bnZpc2l0ZWRfdW5jb2xvdXJlZF9jaGlsZG5vZGUobm9kZSxjb2xvdXJbbm9kZV0pOwoJCQkJCQlpZihjaGlsZD09SW50ZWdlci5NSU5fVkFMVUUpLy9tYXkgZGF5IG1heSBkYXkgCgkJCQkJCQl7cmV0dXJuIGZhbHNlO30KCQkJCQkJZWxzZSBpZihjaGlsZD09MCkKCQkJCQkJCW15c3RhY2sucG9wKCk7CgkJCQkJCWVsc2UKCQkJCQkJCW15c3RhY2sucHVzaChjaGlsZCk7CgkJCQkJCQkKCQkJCQl9CgkJCQkKCQkJCQlyZXR1cm4gdHJ1ZTsKCQkJCX0KCQkJCQoJCQkJc3RhdGljIGludCBnZXRfdW52aXNpdGVkX3VuY29sb3VyZWRfY2hpbGRub2RlKGludCBub2RlLGludCBiYXNlX2NvbG91cikKCQkJCXsKCQkJCQkvL2ZvciBlYWNoIFYgaW4gdGhlIGFkamFjZW50IGxpc3Qgb2YgdQoJCQkJCUFycmF5TGlzdDxJbnRlZ2VyPiBhZGpfbGlzdD1ncmFwaFtub2RlXTsKCQkJCQlJdGVyYXRvcjxJbnRlZ2VyPiBpdD1hZGpfbGlzdC5pdGVyYXRvcigpOwoJCQkJCXdoaWxlKGl0Lmhhc05leHQoKSkKCQkJCQl7CgkJCQkJCWludCBob2xkPWl0Lm5leHQoKTsKCQkJCQkJaWYodmlzaXRlZFtob2xkXT09ZmFsc2UpLy9pZiBob2xkIGlzIG5vdCB5ZXQgdmlzaXRlZAoJCQkJCQl7CgkJCQkJCQljb2xvdXJbaG9sZF09YmFzZV9jb2xvdXIqLTE7CgkJCQkJCQl2aXNpdGVkW2hvbGRdPXRydWU7CgkJCQkJCQlyZXR1cm4gaG9sZDsKCQkJCQkJfQoJCQkJCQllbHNlIGlmKHZpc2l0ZWRbaG9sZF09PXRydWUgJiYgY29sb3VyW2hvbGRdPT1iYXNlX2NvbG91cikKCQkJCQkJewoJCQkJCQkJLy9ub3QgYmlwYXJ0aXRlCgkJCQkJCQlyZXR1cm4gSW50ZWdlci5NSU5fVkFMVUU7CgkJCQkJCX0KCQkJCQkJCgkJCQkJfQoJCQkJCQoJCQkJCQoJCQkJCXJldHVybiAwOwoJCQkJfQoJCQl9CgkJCQoJCQk=