import std.stdio; import std.algorithm; import std.typecons; import std.string; import std.array; import std.conv; import std.container; void main() { int N, M; readf("%d %d\n", &N, &M); alias E = Tuple!(int, int); bool[E] es; foreach (i; 0 .. M) { int a, b; readf("%d %d\n", &a, &b); a--; b--; if (a > b) swap(a, b); es[E(a, b)] = true; } bool f(int a, int b) { if (a > b) swap(a, b); return E(a, b) in es ? true : false; } foreach (e, _; es) { bool a = false, b = false; int c = 0; for (int i = 1; i < N; i++) { bool flag = false; if (f(e[0], i) && f(i, 0)) { a = true; flag =true; } if (f(e[1], i) && f(i, 0)) { b = true; flag = true; } c += flag; } if (c >= 2 && a && b) { writeln("YES"); return; } } writeln("NO"); }