func_code_string: #include <bits/stdc++.h>   using namespace std;   const bool testcase = 0;   const long long int mod1 = 1000000007;   const long long int mod2 = 998244353;   const long long int N = 1e5 + 5;   std::vector<long long int> adj[N];   std::vector<long long int> vis(N, false);   bool hasLoop(long long int i, long long int p) {     vis[i] = true;     bool ans = false;     for (auto it : adj[i]) {       if (!vis[it]) {         ans |= hasLoop(it, i);       } else if (it != p) {         ans |= true;       }     }     return ans;   }   void dfs(long long int i) {     vis[i] = true;     for (auto it : adj[i]) {       if (!vis[it]) {         dfs(it);       }     }   }   void solve() {     long long int n, m;     cin >> n >> m;     for (int i = 0; i < m; ++i) {       long long int u, v;       cin >> u >> v;       adj[u].push_back(v);       adj[v].push_back(u);     }     bool ok = true;     dfs(1);     for (int i = 1; i <= n; ++i) {       ok &= (vis[i] == 1);     }     if (ok && n == m) {       cout <<  FHTAGN! n ;     } else {       cout <<  NO n ;     }   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(NULL);     int T_T = 1;     if (testcase) {       cin >> T_T;     }     while (T_T--) {       solve();     }     return 0;   }   