#include #include #include #include using namespace std; using ll = long long int; using P = tuple; int N, M; vector

WAY; bool dfs(int p, int num) { // cout << num << endl; for (auto&& w: WAY) { int& a = get<0>(w); int& b = get<1>(w); bool& c = get<2>(w); if (a != p || !c) continue; c = false; if (dfs(b, num+1)) return true; c = true; } for (auto&& w: WAY) { int& a = get<0>(w); int& b = get<1>(w); bool& c = get<2>(w); if (b != p || !c) continue; c = false; if (dfs(a, num+1)) return true; c = true; } return num == M; } int main() { cin >> N >> M; for (int i = 0; i < M; ++i) { int Sa, Sb; cin >> Sa >> Sb; WAY.push_back(make_tuple(Sa, Sb, true)); } int a, b; bool c; for (auto&& w: WAY) { int a, b; bool c; tie(a, b, c) = w; } for (int i = 0; i < N; ++i) { if (dfs(i, 0)) { cout << "YES" << endl; return 0; } } cout << "NO" << endl; return 0; }