#include <bits/stdc++.h>
using namespace std;
int N, M;
int A[110][110];
int d[110], sav[110];
void dfs(int n) {
  sav[n] = 1;
  for (int i = 1; i <= N; i++) {
    if (A[n][i] && !sav[i]) {
      sav[i] = 1;
      dfs(i);
    }
  }
}
int main() {
  int i, j, k;
  int a, b, s;
  scanf("%d%d", &N, &M);
  for (i = 0; i < M; i++) {
    scanf("%d%d", &a, &b);
    A[a][b] = 1;
    A[b][a] = 1;
    d[a]++;
    d[b]++;
  }
  if (N < 3 || M != N) {
    printf("NO\n");
    goto ne;
  }
  for (i = 1; i <= N; i++)
    if (!d[i]) {
      printf("NO\n");
      goto ne;
    }
  dfs(1);
  for (i = 1; i <= N; i++)
    if (!sav[i]) {
      printf("NO\n");
      goto ne;
    }
  printf("FHTAGN!\n");
ne:;
  return 0;
}
