#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > r, b;
vector<int> v;
bool check(int, int);
bool checker(pair<int, int>, pair<int, int>, pair<int, int>, pair<int, int>);
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int R, B;
  cin >> R >> B;
  r.resize(R + 1);
  b.resize(B + 1);
  for (int k = 1; k <= R; k++) cin >> r[k].first >> r[k].second;
  for (int i = 1; i <= B; i++) cin >> b[i].first >> b[i].second;
  if (R != B) {
    cout << "No";
    return 0;
  }
  do {
    bool ind = true;
    for (int k = 1; k < R; k++) {
      for (int i = k + 1; i <= R; i++)
        if (check(k, i)) {
          ind = false;
          break;
        }
    }
    if (ind) {
      cout << "Yes";
      return 0;
    }
  } while (next_permutation(r.begin() + 1, r.end()));
  cout << "No";
  return 0;
}
bool check(int i, int j) {
  pair<int, int> A, B, C, D;
  A = r[i];
  B = b[i];
  C = r[j];
  D = b[j];
  if (checker(A, B, C, D) && checker(C, D, A, B))
    return true;
  else
    return false;
}
bool checker(pair<int, int> A, pair<int, int> B, pair<int, int> C,
             pair<int, int> D) {
  pair<int, int> AB, AC, AD;
  AB = {B.first - A.first, B.second - A.second};
  AC = {C.first - A.first, C.second - A.second};
  AD = {D.first - A.first, D.second - A.second};
  int t = (AB.first * AC.second - AB.second * AC.first) *
          (AB.first * AD.second - AB.second * AD.first);
  if (t <= 0)
    return true;
  else
    return false;
}
