#include <bits/stdc++.h>
using namespace std;
const int N = 25;
int n, m, e[N][N], deg[N];
vector<int> v[N];
bool vis[N];
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> m;
  int t1, t2;
  for (int i = 1; i <= m; i++) {
    cin >> t1 >> t2;
    if (t1 == t2 || e[t1][t2]) continue;
    e[t1][t2] = e[t2][t1] = 1;
    ++deg[t1];
    ++deg[t2];
    v[t1].push_back(t2);
    v[t2].push_back(t1);
  }
  for (int i = 1; i <= n; i++)
    sort(v[i].begin(), v[i].end(), [](int a, int b) {
      return deg[a] < deg[b] || (deg[a] == deg[b] && a < b);
    });
  for (int i = 1; i <= n; i++) {
    memset(vis, 0, sizeof(vis));
    int cur = i, _;
    vis[cur] = 1;
    for (_ = 1; _ < n; _++) {
      int t = 0;
      for (auto &j : v[cur])
        if (!vis[j]) {
          t = j;
          break;
        }
      if (!t)
        break;
      else
        cur = t, vis[cur] = 1;
    }
    if (_ == n) {
      cout << "Yes" << endl;
      return 0;
    }
  }
  cout << "No" << endl;
  return 0;
}
