#include <bits/stdc++.h>
using namespace std;
struct Point {
  int x, y;
};
struct line {
  Point p1, p2;
};
vector<Point> vec1, vec2;
vector<line> vec3;
bool onLine(line l1, Point p) {
  if (p.x <= max(l1.p1.x, l1.p2.x) && p.x <= min(l1.p1.x, l1.p2.x) &&
      (p.y <= max(l1.p1.y, l1.p2.y) && p.y <= min(l1.p1.y, l1.p2.y)))
    return true;
  return false;
}
int direction(Point a, Point b, Point c) {
  int val = (b.y - a.y) * (c.x - b.x) - (b.x - a.x) * (c.y - b.y);
  if (val == 0)
    return 0;
  else if (val < 0)
    return 2;
  return 1;
}
bool isIntersect(line l1, line l2) {
  int dir1 = direction(l1.p1, l1.p2, l2.p1);
  int dir2 = direction(l1.p1, l1.p2, l2.p2);
  int dir3 = direction(l2.p1, l2.p2, l1.p1);
  int dir4 = direction(l2.p1, l2.p2, l1.p2);
  if (dir1 != dir2 && dir3 != dir4) return true;
  if (dir1 == 0 && onLine(l1, l2.p1)) return true;
  if (dir2 == 0 && onLine(l1, l2.p2)) return true;
  if (dir3 == 0 && onLine(l2, l1.p1)) return true;
  if (dir4 == 0 && onLine(l2, l1.p2)) return true;
  return false;
}
bool cmp(Point a, Point b) {
  if (a.x != b.x) return a.x < b.x;
  return a.y < b.y;
}
int main() {
  int n, m;
  scanf("%d %d", &n, &m);
  for (int i = 0; i < n; i++) {
    int a, b;
    scanf("%d %d", &a, &b);
    Point nn;
    nn.x = a, nn.y = b;
    vec1.push_back(nn);
  }
  for (int i = 0; i < m; i++) {
    int a, b;
    scanf("%d %d", &a, &b);
    Point nn;
    nn.x = a, nn.y = b;
    vec2.push_back(nn);
  }
  if (n != m) {
    printf("No\n");
    exit(0);
  }
  sort(vec1.begin(), vec1.end(), cmp);
  sort(vec2.begin(), vec2.end(), cmp);
  vector<int> xx;
  for (int i = 0; i < vec1.size(); i++) xx.push_back(i);
  do {
    vec3.clear();
    for (int i = 0; i < vec1.size(); i++) {
      line L1 = {{vec1[xx[i]].x, vec1[xx[i]].y}, {vec2[i].x, vec2[i].y}};
      vec3.push_back(L1);
    }
    bool hobeina = true;
    for (int i = 0; i < vec3.size(); i++) {
      for (int j = 0; j < vec3.size(); j++) {
        if (i == j) continue;
        if (isIntersect(vec3[i], vec3[j])) {
          hobeina = false;
        }
      }
    }
    if (hobeina == true) {
      printf("Yes\n");
      exit(0);
    }
  } while (next_permutation(xx.begin(), xx.end()));
  printf("No\n");
  return 0;
}
