fn.cpp
#include <iostream>
#include <set>
#include <stdio.h>
#include <utility>
#include <map>
#include <string>
#include <sstream>
#include <algorithm>
#include <vector>
using namespace std;
vector<vector<int> > G;
vector<char> visited;
int dfs(int n){
visited[n] = true;
int sous = G[n].size();
int res = 0;
if(sous == 3) res = 1;
else if(sous > 3) res = 2;
for(int i=0; i<G[n].size(); ++i){
if(!visited[G[n][i]]){
res += dfs(G[n][i]);
}
}
return res;
}
int main(){
int n, m;
while(cin >> n >> m){
G.clear();
G.resize(n+5);
visited.clear();
visited.resize(n+5);
for(int i=0; i<m; ++i){
int x, y;
cin >> x >> y;
G[x].push_back(y);
G[y].push_back(x);
}
bool yes = false;
for(int i=1; i<G.size(); ++i){
if(!visited[i]){
if(dfs(i)>=2){
yes = true;
break;
}
}
}
if(yes){
cout << "YES" << '\n';
}
else{
cout << "NO" << '\n';
}
}
return 0;
}