#include <bits/stdc++.h>
using namespace std;
int main() {
  long long N;
  long long M;
  cin >> N >> M;
  vector<pair<long long, long long>> v(M);
  for (long long i = 0; i < M; i++) {
    cin >> v[i].first >> v[i].second;
    if (v[i].second < v[i].first) swap(v[i].first, v[i].second);
  }
  sort(v.begin(), v.end());
  vector<pair<long long, long long>> ar;
  ar.push_back(v[0]);
  for (long long i = 1; i < M; i++) {
    if (v[i] != v[i - 1]) ar.push_back(v[i]);
  }
  long long X = ar[0].first;
  long long Y = ar[0].second;
  vector<pair<long long, long long>> d;
  vector<pair<long long, long long>> r;
  for (long long i = 0; i < ar.size(); i++) {
    if (ar[i].first != X && ar[i].second != X) d.push_back(ar[i]);
    if (ar[i].first != Y && ar[i].second != Y) r.push_back(ar[i]);
  }
  if (d.size() == 0 || r.size() == 0) {
    cout << "YES";
    return 0;
  }
  long long xx = d[0].first;
  long long yx = d[0].second;
  long long xy = r[0].first;
  long long yy = r[0].second;
  long long cx = 0, cy = 0, dx = 0, dy = 0;
  for (long long i = 0; i < d.size(); i++) {
    if (d[i].first != xx && d[i].second != xx) cx++;
    if (d[i].first != yx && d[i].second != yx) cy++;
  }
  for (long long i = 0; i < r.size(); i++) {
    if (r[i].first != xy && r[i].second != xy) dx++;
    if (r[i].first != yy && r[i].second != yy) dy++;
  }
  if (cx == 0 || cy == 0 || dx == 0 || dy == 0)
    cout << "YES" << endl;
  else
    cout << "NO" << endl;
  return 0;
}
