好傻的题目。
对于任意一个图退化为一棵树(因为多余的边对答案是没有影响的),然后树是二分图,黑白染色以后一定可行,所以只要一个节点和其他节点相邻就一定可行。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int vis[200021],n,m,cnt,a,b;
void read(int& x){
x=0;char c=getchar();
for(;c>'9'||c<'0';c=getchar());
for(;c>='0'&&c<='9';c=getchar())x=x*10+c-'0';
}
int main(){
read(n),read(m);
while(m--){
read(a),read(b);
cnt+=!vis[a]+!vis[b];vis[a]=vis[b]=1;
}
if(cnt==n)puts("TAK");else puts("NIE");
return 0;
}