#include <bits/stdc++.h>
using namespace std;
struct pnt {
  int x, y;
  pnt(int x = 0, int y = 0) : x(x), y(y) {}
  pnt operator-(const pnt &a) const { return pnt(x - a.x, y - a.y); }
  pnt operator+(const pnt &a) const { return pnt(x + a.x, y + a.y); }
  int operator^(const pnt &a) const { return x * a.y - y * a.x; }
  int operator&(const pnt &a) const { return x * a.x + y * a.y; }
  void input() { scanf("%d %d", &x, &y); }
} p[12], q[12];
int n, m, a[12];
bool vis[12];
int abs(int k) {
  if (k < 0) return -k;
  return k;
}
bool check(pnt &a, pnt &b, pnt &c, pnt &d) {
  int x = abs(a - b ^ d - c);
  if (x < abs(a - c ^ d - c)) return 1;
  if (x < abs(b - c ^ d - c)) return 1;
  if (x < abs(c - a ^ b - a)) return 1;
  if (x < abs(d - a ^ b - a)) return 1;
  return 0;
}
bool func(int k) {
  if (k == n + 1) return 1;
  for (int j, i = 1; i <= n; i++)
    if (!vis[i]) {
      for (j = 1; j < i; j++)
        if (check(p[j], q[a[j]], p[i], q[a[i]])) break;
      if (j < i) continue;
      vis[i] = 1;
      a[k] = i;
      if (func(k + 1)) return 1;
      vis[i] = 0;
    }
}
int main() {
  scanf("%d %d", &n, &m);
  if (n != m)
    puts("No");
  else {
    for (int i = 1; i <= n; i++) p[i].input();
    for (int i = 1; i <= m; i++) q[i].input();
    if (func(1))
      puts("Yes");
    else
      puts("No");
  }
  return 0;
}
