import java.io.BufferedReader;
import java.io.InputStreamReader;
class Bug{
boolean[][] bug;
int bugs;
public static void main(String[] ar){
new Bug().go();
}
void go(){
try{
InputStreamReader in=new InputStreamReader(System.in);
BufferedReader bf=new BufferedReader(in);
boolean test[]=new boolean[Integer.valueOf(bf.readLine())];
for(int i=0;i<test.length;i++)
test[i]=readIn();
for(int i=0;i<test.length;i++){
if(test[i]){
System.out.println("Scenario #"+(i+1)+":");
System.out.println("Suspicious bugs found!");
}
else{
System.out.println("Scenario #"+(i+1)+":");
System.out.println("No suspicious bugs found!");
}
}
}
catch(Exception e){e.printStackTrace();}
}
boolean readIn(){
boolean suspecious=false;
try{
InputStreamReader in=new InputStreamReader(System.in);
BufferedReader bf=new BufferedReader(in);
String[] s=bf.readLine().split(" ");
bugs=Integer.valueOf(s[0]);
if(bugs==1)
return false;
bug=new boolean[bugs-1][];
for(int i=0;i<bugs-1;i++)
bug[i]=new boolean[bugs-i-1];
int end=Integer.valueOf(s[1]);
int min,max;
for(int it=0;it<end;it++){
s=bf.readLine().split(" ");
min=Integer.valueOf(s[0])-1;
max=Integer.valueOf(s[1])-1;
if(min>max){
min=min^max;
max=min^max;
min=min^max;
}
bug[min][max-min-1]=true;
}
Boolean[] f=new Boolean[bugs];
int i;
for(i=0;i<bugs;i++)
if(f[i]==null){
f[i]=false;suspecious=fill(f,i);
if(suspecious)
break;
}
}
catch(Exception e){e.printStackTrace();}
return suspecious;
}
boolean fill(Boolean[] f,int i){
for(int j=0;j<bugs-i-1;j++){
if(f[i+j+1]==null){
if(bug[i][j]){
f[i+j+1]=!f[i];
if(fill(f,i+j+1))
return true;
}
}
else if(f[i+j+1]==f[i])
if(bug[i][j])
return true;
}
return false;
}
}
can some one tell me whats wrong with above code?its driving me crazy..costing a lot of wa for buglife though i cant figure out whats wrong?is there some tricky test case???