#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;
}
