#include <bits/stdc++.h>
using namespace std;
int n, m, tot[100007], mx, cnt, x, y;
vector<int> e[100007];
int read()
{
    int num = 0;
    char c = getchar();
    while (c < '0' || c > '9')c = getchar();
    while (c >= '0' && c <= '9')num = num * 10 + c - '0', c = getchar();
    return num;
}
int dfs(int w, int f)
{
    if (w == x && f) { cout << "Yes" << endl; exit(0); }
    if (w == y)return 0;
    for (int i = 0, lim = e[w].size(); i < lim; i++)
        if (e[w][i] != f)dfs(e[w][i], w);
    return 0;
}
int main()
{
    n = read();
    m = read();
    for (int i = 1; i <= m; i++)
    {
        int a = read(), b = read();
        e[a].push_back(b);
        e[b].push_back(a);
        tot[a]++;
        tot[b]++;
    }
    for (int i = 1; i <= n; i++)
        if (tot[i] & 1) { cout << "No" << endl; return 0; }
        else
        {
            mx = max(mx, tot[i]);
            if (tot[i] == 4)
            {
                cnt++;
                if (x)y = i;
                else x = i;
            }
        }
    if (mx < 4 || (mx == 4 && cnt == 1)) { cout << "No" << endl; return 0; }
    if (mx > 4 || cnt > 2) { cout << "Yes" << endl; return 0; }
    dfs(x, 0);
    cout << "No" << endl;
    return 0;
}