#include using namespace std; const int N = 2e5 + 5; int n, m; vector e[N]; unordered_set C[N]; bool solve() { for (int i: e[1]) for (int j: e[i]) { if (j == 1) continue; C[j].insert(i); } for (int i = 1; i <= n; i++) for (int j: e[i]) { if (j < i) continue; if (i == 1 || j == 1) continue; int num_i = C[i].size(); if (C[i].count(j)) num_i--; int num_j = C[j].size(); if (C[j].count(i)) num_j--; if (num_i == 1 && num_j == 1) { int a; for (int k : C[i]) if (k != i && k != j) a = k; int b; for (int k : C[j]) if (k != i && k != j) b = k; if (a != b) return true; } if (1 <= num_i && 1 <= num_j) { int m = max(num_i, num_j); if (2 <= m) return true; } } return false; } int main() { // freopen("1.in", "r", stdin); cin >> n >> m; for (int i = 1, u, v; i <= m; i++) { cin >> u >> v; e[u].push_back(v); e[v].push_back(u); } if (solve()) puts("YES"); else puts("NO"); return 0; }