#include <bits/stdc++.h> #define mod 1000000007 #define ull unsigned ll #define ll long long int #define ld long double #define pb push_back #define mp make_pair #define mt make_tuple #define ff first #define ss second #define pi acos(-1) #define nui 100 #define INF 100000000000 #pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #pragma GCC optimization ("unroll-loops") #define F(i,a,n) for(ll i=a;i<n;i++) #define B(i,a,n) for(ll i=n-1;i>=a;i--) #define tc int t;cin>>t;while(t--) #define tcf ll t;cin>>t;for(int w=1;w<=t;w++) #define pfn cout<<"-1\n" #define pfp cout<<"1\n"; using namespace std; ll binpow(ll a, ll b) { ll res = 1; while (b > 0) { if (b & 1) { res *= a; } a *= a; b >>= 1; } return res; } void dex(int a) { if (a == 1) { cout << "1\n"; } else if (a == -1) { cout << "-1\n"; } else if (a == 0) { cout << "0\n"; } else if (a == 2) { cout << "YES\n"; } else if (a == 3) { cout << "NO\n"; } } vector<ll>adj[100005]; vector<ll> visited(100005, 0); vector<ll>intime(100005, 0); vector<ll>outime(100005, 0); vector<ll>dis(100005, 0); vector<ll>color(100005, 0); ll tim_e = 0; bool dfs(ll node, ll c) { intime[node] = tim_e++; visited[node] = 1; color[node] = c; for (auto i : adj[node]) { if (!visited[i]) { dis[i] = dis[node] + 1; bool res = dfs(i, c ^ 1); if (res == false) return false; } else { //cout << i << "\n"; if (color[node] == color[i]) { // cout << i << "\n"; return false; } } } outime[node] = tim_e++; return true; } int main() { #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //Checking whether a graph is bi-partite or not! tcf{ ll n, e; cin >> n >> e; ll x, y; for (ll i = 1; i <= n; i++) { adj[i].clear(); visited[i] = 0; // color[i] = 0; } for (ll i = 1; i <= e; i++) { cin >> x >> y; adj[x].pb(y); adj[y].pb(x); } ll cc = 0; bool flag = true; F(i, 1, n + 1) { /*cout << intime[i] << " " << outime[i] << "\n"; cout << "1-->" << i << "=" << dis[i] << "\n";*/ if (!visited[i]) { bool clag = dfs(i, 0); if (clag == false) { flag = false; } } } cout << "Scenario #" << w << ":\n"; if (!flag) { cout << "Suspicious bugs found!\n"; } else { cout << "No suspicious bugs found!\n"; } } return 0; }