#3668. 克苏鲁

克苏鲁

题目描述

……很久很久以前,有个人来到海边。大海狂风大作、漆黑一片。他呼唤小美人鱼现身,然而不幸的是,他只唤醒了克苏鲁……

与此同时,在世界的另一端,五角大楼正在积极收集情报,试图预测这只怪物的行踪,并秘密研制超级武器。由于强烈的地震活动和恶劣的天气,卫星始终拍不到清晰的照片。对第一张照片的分析结果是一个包含 nn 个顶点、mm 条边的无向图。现在,世界上最聪明的头脑们要判断这个图能否被视为克苏鲁。

为了简化问题,我们假设克苏鲁从太空看下去是一个附着触手的球状身体。严格地说,我们称一个无向图为克苏鲁,当且仅当它可以表示为三棵或更多有根树的集合,且这些树的根由一个简单环相连。

保证图中不含重边和自环。

输入格式

第一行包含两个整数——图的顶点数 nn 和边数 mm(1≤n≤1001 \le n \le 100,0≤m≤n(n−1)20 \le m \le \frac{n(n-1)}{2})。

接下来 mm 行,每行两个整数 xx 和 yy,表示顶点 xx 与顶点 yy 之间有一条边(1≤x,y≤n1 \le x, y \le n,x≠yx \ne y)。每对顶点之间至多一条边,没有任何边连接顶点自身。

输出格式

如果这个图不是克苏鲁,输出 NO;如果是,输出 FHTAGN!。

6 6
6 3
6 4
5 1
2 5
1 4
5 4
FHTAGN!
6 5
5 6
4 6
3 1
5 1
1 2
NO

说明/提示

简单环是指由 vv 个顶点构成的集合:可以把这些顶点编号,使得边只存在于编号 11 与 22、22 与 33、……、v−1v-1 与 vv、vv 与 11 的顶点之间。

树是一个由 nn 个顶点和 n−1n-1 条边组成的连通无向图(n>0n \gt 0)。

有根树是选定一个顶点作为根的树。