#include <bits/stdc++.h>
using namespace std;
struct Point {
  long long x, y;
  void read() { scanf("%lld%lld", &x, &y); }
};
long long product(const Point &o, const Point &a, const Point &b) {
  return (a.x - o.x) * (b.y - o.y) - (b.x - o.x) * (a.y - o.y);
}
bool intersect(const Point &a, const Point &b, const Point &c, const Point &d) {
  bool insect1 = product(a, c, d) * product(b, c, d) < 0;
  bool insect2 = product(c, a, b) * product(d, a, b) < 0;
  return insect1 && insect2;
}
int main() {
  ios ::sync_with_stdio(false);
  cout << fixed << setprecision(16);
  int R, B;
  scanf("%d%d", &R, &B);
  vector<Point> bases(B);
  vector<Point> ships(R);
  vector<int> b(R);
  for (int i = 0; i < R; i++) {
    ships[i].read();
  }
  for (int i = 0; i < B; i++) {
    bases[i].read();
  }
  if (B != R) {
    puts("No");
    return 0;
  }
  for (int i = 0; i < R; i++) {
    b[i] = i;
  }
  bool yes = false;
  do {
    bool ok = true;
    for (int i = 0; i < B; i++) {
      for (int j = i + 1; j < B; j++) {
        if (intersect(ships[b[i]], bases[i], ships[b[j]], bases[j])) {
          ok = false;
        }
      }
    }
    if (ok) {
      yes = true;
      break;
    }
  } while (next_permutation(b.begin(), b.end()));
  puts(yes ? "Yes" : "No");
  return 0;
}
