#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e6 + 10;
int parent[MAXN],n,x,y,k,size[MAXN];
int find_root(int v){
if (v == parent[v])
return v;
return find_root(parent[v]);
}
void make_set(int v) {
parent[v] = v;
size[v] = 1;
}
void union_sets(int a, int b) {
a = find_root(a);
b = find_root(b);
if (a != b) {
if (size[a] < size[b])
swap(a, b);
parent[b] = a;
size[a] += size[b];
}
}
bool check(int u, int v){
return (find_root(u)==find_root(v));
}
int main()
{
cin>>n>>k;
for (int i=1;i<=n;i++) make_set(i);
for (int i=0;i<k;i++){
cin>>x>>y;
if (x>y) swap(x,y);
union_sets(x,y);
}
for (int i=1;i<=(n+1)/2;i++) if (!check(i,n-i+1)) {
cout<<"No";
return 0;
}
cout<<"Yes";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTUFYTiA9IDFlNiArIDEwOwppbnQgcGFyZW50W01BWE5dLG4seCx5LGssc2l6ZVtNQVhOXTsKaW50IGZpbmRfcm9vdChpbnQgdil7CiAgICAgaWYgKHYgPT0gcGFyZW50W3ZdKQogICAgICAgIHJldHVybiB2OwogICAgcmV0dXJuIGZpbmRfcm9vdChwYXJlbnRbdl0pOwp9CnZvaWQgbWFrZV9zZXQoaW50IHYpIHsKICAgIHBhcmVudFt2XSA9IHY7CiAgICBzaXplW3ZdID0gMTsKfQp2b2lkIHVuaW9uX3NldHMoaW50IGEsIGludCBiKSB7CiAgICBhID0gZmluZF9yb290KGEpOwogICAgYiA9IGZpbmRfcm9vdChiKTsKICAgIGlmIChhICE9IGIpIHsKICAgICAgICBpZiAoc2l6ZVthXSA8IHNpemVbYl0pCiAgICAgICAgICAgIHN3YXAoYSwgYik7CiAgICAgICAgcGFyZW50W2JdID0gYTsKICAgICAgICBzaXplW2FdICs9IHNpemVbYl07CiAgICB9Cn0KYm9vbCBjaGVjayhpbnQgdSwgaW50IHYpewogICAgcmV0dXJuIChmaW5kX3Jvb3QodSk9PWZpbmRfcm9vdCh2KSk7Cn0KaW50IG1haW4oKQp7CiAgICBjaW4+Pm4+Pms7CiAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIG1ha2Vfc2V0KGkpOwogICAgZm9yIChpbnQgaT0wO2k8aztpKyspewogICAgICAgIGNpbj4+eD4+eTsKICAgICAgICBpZiAoeD55KSBzd2FwKHgseSk7CiAgICAgICAgdW5pb25fc2V0cyh4LHkpOwogICAgfQogICAgZm9yIChpbnQgaT0xO2k8PShuKzEpLzI7aSsrKSBpZiAoIWNoZWNrKGksbi1pKzEpKSB7CiAgICAgICAgY291dDw8Ik5vIjsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGNvdXQ8PCJZZXMiOwogICAgcmV0dXJuIDA7Cn0=