#include <bits/stdc++.h>
using namespace std;
struct me {
  int x, y;
} v1[15], v2[15], v3[15];
int n1, n2;
bool ff = false;
int vv[15];
bool panduan(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) {
  double k1, k2;
  double w1, w2, w3, w4;
  int flag = 0;
  if ((x2 - x1) == 0) {
    if ((x3 >= x2 && x4 <= x2) || (x4 >= x2 && x3 <= x2)) flag += 1;
  } else {
    k1 = (double)(y2 - y1) / (x2 - x1);
    w3 = k1 * (x3 - x2) + y2;
    w4 = k1 * (x4 - x2) + y2;
    if ((y3 >= w3 && y4 <= w4) || (y3 <= w3 && y4 >= w4)) flag += 1;
  }
  if ((x4 - x3) == 0) {
    if ((x2 >= x3 && x1 <= x3) || (x1 >= x3 && x2 <= x3)) flag += 1;
    if (x2 - x1 == 0 && ((y1 >= y3 && y1 <= y4) || (y1 >= y4 && y1 <= y3)))
      return false;
  } else {
    k2 = (double)(y4 - y3) / (x4 - x3);
    w1 = k2 * (x1 - x3) + y3;
    w2 = k2 * (x2 - x3) + y3;
    if ((y2 >= w2 && y1 <= w1) || (y2 <= w2 && y1 >= w1)) flag += 1;
  }
  if (flag == 2) return true;
  return false;
}
void f(int cur) {
  if (ff) return;
  if (cur == n1 + 1) {
    ff = true;
    return;
  }
  for (int i = 1; i <= n2; i++) {
    if (vv[i] == 0) {
      bool r = true;
      for (int j = 1; j < cur; j++) {
        if (panduan(v1[j].x, v1[j].y, v3[j].x, v3[j].y, v1[cur].x, v1[cur].y,
                    v2[i].x, v2[i].y))
          r = false;
      }
      if (r) {
        vv[i] = 1;
        v3[cur].x = v2[i].x;
        v3[cur].y = v2[i].y;
        f(cur + 1);
        vv[i] = 0;
      }
    }
  }
}
int main() {
  scanf("%d%d", &n1, &n2);
  for (int i = 1; i <= n1; i++) scanf("%d%d", &v1[i].x, &v1[i].y);
  for (int i = 1; i <= n2; i++) scanf("%d%d", &v2[i].x, &v2[i].y);
  if (n1 != n2)
    printf("No\n");
  else {
    f(1);
    if (ff)
      printf("Yes\n");
    else
      printf("No\n");
  }
  return 0;
}
