#include <bits/stdc++.h>
using namespace std;
const int maxn = 123456;
int u[maxn];
void init(){
	for(int i = 0; i < maxn; i++) u[i] = i;
}
int find(int x){
	if(x == u[x]) return x;
	return u[x] = find(u[x]);
}
int join(int x, int y){
	x = find(x);
	y = find(y);
	if(x^y){
		u[x] = y;
		return true;
	}
	return false;
}
int deg[maxn], x[maxn], y[maxn];
int main(){
	int n, m; cin >> n >> m;
	for(int i = 0; i < m; i++){
		cin >> x[i] >> y[i]; x[i]--; y[i]--;
		deg[x[i]]++;
		deg[y[i]]++;
	}
	for(int i = 0; i < n; i++){
		if(deg[i]&1) return !printf("No\n");
	}
	for(int i = 0; i < n; i++){
		if(deg[i] >= 6) return !printf("Yes\n");
	}
	for(int i = 0; i < n; i++){
		if(deg[i] >= 4){
			init();
			for(int j = 0; j < m; j++){
				if(x[j] != i && y[j] != i){
					if(!join(x[j], y[j])){
						return !printf("Yes\n");
					}
				}
			}
		}
	}
	return !printf("No\n");
}

