"use strict";
function I(s,f){this._s=s.split("\n");this._c=0;this._l=0;this._f=f||Number}I.prototype.a=function(){var l=this._s[this._l];if(!l)return;var t=l.trim().split(" ");var a=t[this._c];this._c++;if(t.length===this._c){this._c=0;this._l++}return this._f(a)};I.prototype.l=function(){var l=this._s[this._l];if(!l)return;this._c=0;this._l++;return l.split(" ").map(this._f)};module.exports=I;

function main(input) {
  const o = new I(input);

  const N = o.a();
  const M = o.a();

  const adj = [];
  for (let i = 1; i <= N; i++) {
    adj[i] = [];
  }

  for (let i = 0; i < M; i++) {
    let ai = o.a();
    let bi = o.a();
    adj[ai].push(bi);
    adj[bi].push(ai);
  }

  let six = false;
  let four = 0;
  let fours = [];
  let flag2 = true;
  for (let i = 1; i <= N; i++) {
    if (adj[i].length >= 6) {
      six = true;
    }

    if (adj[i].length >= 4) {
      four += 1;
      fours.push(i);
    }


    if (adj[i].length % 2 !== 0) {
      flag2 = false;
    }
  }

  if (flag2) {
    if (six) {
      console.log("Yes");
    } else if (four >= 3) {
      console.log("Yes");
    } else if (four === 2) {
      // check a b min cut
      var s = fours[0];
      var t = fours[1];
      console.log(dfsStart(s, t, adj, N) ? "Yes":"No");
    } else {
      console.log("No");
    }
  } else {
    console.log("No");
  }
}

function dfsStart(s, t, adj, N) {
  var start = s;
  var colors = Array(N + 1).fill("white");
  colors[t] = "black";

  var stopFlag = false;

  dfs(s, undefined);

  function dfs(s, p) {
    if (stopFlag) return;
    var cur = s;
    adj[s].forEach(e => {
      if (e === start && p !== start) {
        stopFlag = true;
        return;
      }
      if (colors[e] === "white") {
        colors[e] = "black";
        dfs(e, s);
      }
    })
  }

  return stopFlag;
}


main(require("fs").readFileSync("/dev/stdin", "utf8"));
