#include <bits/stdc++.h>
#define dbg(x) cout << #x << " = " << x << endl;
#define print_v(x) cout << #x << "[]: "; for (auto e : x) cout << e << " "; cout << '\n';
#define RAYA cout << string(10, '=') << '\n';
using namespace std;
typedef long long ll;
template <class T> int sgn(T x) { return (x > 0) - (x < 0); }
template<class T>
struct Point {
typedef Point P;
double x, y;
explicit Point(T x = 0, T y = 0) : x(x), y(y) {}
bool operator<(P p) const { return tie(x, y) < tie(p.x, p.y); }
bool operator==(P p) const { return tie(x, y) == tie(p.x, p.y); }
P operator+(P other) const { return P(x + other.x, y + other.y); }
P operator-(P other) const { return P(x - other.x, y - other.y); }
P operator*(T c) const { return P(x * c, y * c); }
P operator/(T c) const { return P(x/c, y/c); }
//friend T operator*(T c, const P p) { return p * c; }
T operator*(P other) const { return x * other.x + y * other.y; }
T operator^(P other) const { return x * other.y - y * other.x; }
T dot(P other) const { return (*this) * other; }
T cross(P other) const { return (*this) ^ other; }
T cross(P a, P b) const { return (a - *this).cross(b - *this); }
T dist2() const { return x * x + y * y; }
double norm() const { return sqrt((double) dist2()); }
friend double dist(P p, P q) { return (p - q).norm(); }
double angle() const { return atan2(y, x); }
P unit() const { return *this/norm(); }
P perp() const { return P(-y, x); }
P normal() const { return perp().unit(); }
P rotate(double a) const {
return P(x * cos(a) - y * sin(a), x * sin(a) + y * cos(a));
}
P rotate(Point other, double a) const {
return (*this - other).rotate(a) + other;
}
friend istream& operator>>(istream& is, P& other) {
return is >> other.x >> other.y;
}
friend ostream& operator<<(ostream& os, P other) {
return os << "(" << other.x << "," << other.y << ")";
}
};
template<class P>
pair<int, P> lineInter(P s1, P e1, P s2, P e2) {
auto d = (e1 - s1).cross(e2 - s2);
if (d == 0) // if parallel
return {-(s1.cross(e1, s2) == 0), P(0, 0)};
auto p = s2.cross(e1, e2), q = s2.cross(e2, s1);
return {1, (s1 * p + e1 * q) / d};
}
int main() {
int R,B;
cin >> R >> B;
if (R != B) {
cout << "No\n";
return 0;
}
int n = R;
vector<Point<double>> a(n), b(n);
for (auto &e : a) cin >> e;
for (auto &e : b) cin >> e;
vector<int> idx(n);
iota(idx.begin(), idx.end(), 0);
do {
bool ok = true;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
pair<int, Point<double>> t = lineInter(a[i], b[idx[i]], a[j], b[idx[j]]);
if (t.first == 0) continue;
Point<double> tt = t.second;
if (tt.x <= max(a[i].x, b[idx[i]].x) and tt.x >= min(a[i].x, b[idx[i]].x) and tt.x <= max(a[j].x, b[idx[j]].x) and tt.x >= min(a[j].x, b[idx[j]].x)) {
ok = false;
break;
}
}
}
if (ok) {
cout << "Yes\n";
return 0;
}
} while(next_permutation(idx.begin(), idx.end()));
cout << "No\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZGJnKHgpIGNvdXQgPDwgI3ggPDwgIiA9ICIgPDwgeCA8PCBlbmRsOwojZGVmaW5lIHByaW50X3YoeCkgY291dCA8PCAjeCA8PCAiW106ICI7IGZvciAoYXV0byBlIDogeCkgY291dCA8PCBlIDw8ICIgIjsgY291dCA8PCAnXG4nOwojZGVmaW5lIFJBWUEgY291dCA8PCBzdHJpbmcoMTAsICc9JykgPDwgJ1xuJzsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4gaW50IHNnbihUIHgpIHsgcmV0dXJuICh4ID4gMCkgLSAoeCA8IDApOyB9CnRlbXBsYXRlPGNsYXNzIFQ+CgpzdHJ1Y3QgUG9pbnQgewogICAgdHlwZWRlZiBQb2ludCBQOwogICAgZG91YmxlIHgsIHk7CiAgICBleHBsaWNpdCBQb2ludChUIHggPSAwLCBUIHkgPSAwKSA6IHgoeCksIHkoeSkge30KICAgIGJvb2wgb3BlcmF0b3I8KFAgcCkgY29uc3QgeyByZXR1cm4gdGllKHgsIHkpIDwgdGllKHAueCwgcC55KTsgfQogICAgYm9vbCBvcGVyYXRvcj09KFAgcCkgY29uc3QgeyByZXR1cm4gdGllKHgsIHkpID09IHRpZShwLngsIHAueSk7IH0KICAgIFAgb3BlcmF0b3IrKFAgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIFAoeCArIG90aGVyLngsIHkgKyBvdGhlci55KTsgfQogICAgUCBvcGVyYXRvci0oUCBvdGhlcikgY29uc3QgeyByZXR1cm4gUCh4IC0gb3RoZXIueCwgeSAtIG90aGVyLnkpOyB9CiAgICBQIG9wZXJhdG9yKihUIGMpIGNvbnN0IHsgcmV0dXJuIFAoeCAqIGMsIHkgKiBjKTsgfQogICAgUCBvcGVyYXRvci8oVCBjKSBjb25zdCB7IHJldHVybiBQKHgvYywgeS9jKTsgfQogICAgLy9mcmllbmQgVCBvcGVyYXRvciooVCBjLCBjb25zdCBQIHApIHsgcmV0dXJuIHAgKiBjOyB9CiAgICBUIG9wZXJhdG9yKihQIG90aGVyKSBjb25zdCB7IHJldHVybiB4ICogb3RoZXIueCArIHkgKiBvdGhlci55OyB9CiAgICBUIG9wZXJhdG9yXihQIG90aGVyKSBjb25zdCB7IHJldHVybiB4ICogb3RoZXIueSAtIHkgKiBvdGhlci54OyB9CiAgICBUIGRvdChQIG90aGVyKSBjb25zdCB7IHJldHVybiAoKnRoaXMpICogb3RoZXI7IH0KICAgIFQgY3Jvc3MoUCBvdGhlcikgY29uc3QgeyByZXR1cm4gKCp0aGlzKSBeIG90aGVyOyB9CiAgICBUIGNyb3NzKFAgYSwgUCBiKSBjb25zdCB7IHJldHVybiAoYSAtICp0aGlzKS5jcm9zcyhiIC0gKnRoaXMpOyB9CiAgICBUIGRpc3QyKCkgY29uc3QgeyByZXR1cm4geCAqIHggKyB5ICogeTsgfQogICAgZG91YmxlIG5vcm0oKSBjb25zdCB7IHJldHVybiBzcXJ0KChkb3VibGUpIGRpc3QyKCkpOyB9CiAgICBmcmllbmQgZG91YmxlIGRpc3QoUCBwLCBQIHEpIHsgcmV0dXJuIChwIC0gcSkubm9ybSgpOyB9CiAgICBkb3VibGUgYW5nbGUoKSBjb25zdCB7IHJldHVybiBhdGFuMih5LCB4KTsgfQogICAgUCB1bml0KCkgY29uc3QgeyByZXR1cm4gKnRoaXMvbm9ybSgpOyB9CiAgICBQIHBlcnAoKSBjb25zdCB7IHJldHVybiBQKC15LCB4KTsgfQogICAgUCBub3JtYWwoKSBjb25zdCB7IHJldHVybiBwZXJwKCkudW5pdCgpOyB9CiAgICBQIHJvdGF0ZShkb3VibGUgYSkgY29uc3QgewogICAgICAgIHJldHVybiBQKHggKiBjb3MoYSkgLSB5ICogc2luKGEpLCB4ICogc2luKGEpICsgeSAqIGNvcyhhKSk7CiAgICB9CiAgICBQIHJvdGF0ZShQb2ludCBvdGhlciwgZG91YmxlIGEpIGNvbnN0IHsKICAgICAgICByZXR1cm4gKCp0aGlzIC0gb3RoZXIpLnJvdGF0ZShhKSArIG90aGVyOwogICAgfQogICAgZnJpZW5kIGlzdHJlYW0mIG9wZXJhdG9yPj4oaXN0cmVhbSYgaXMsIFAmIG90aGVyKSB7CiAgICAgICAgcmV0dXJuIGlzID4+IG90aGVyLnggPj4gb3RoZXIueTsKICAgIH0KICAgIGZyaWVuZCBvc3RyZWFtJiBvcGVyYXRvcjw8KG9zdHJlYW0mIG9zLCBQIG90aGVyKSB7CiAgICAgICAgcmV0dXJuIG9zIDw8ICIoIiA8PCBvdGhlci54IDw8ICIsIiA8PCBvdGhlci55IDw8ICIpIjsKICAgIH0KfTsKCnRlbXBsYXRlPGNsYXNzIFA+CnBhaXI8aW50LCBQPiBsaW5lSW50ZXIoUCBzMSwgUCBlMSwgUCBzMiwgUCBlMikgewoJYXV0byBkID0gKGUxIC0gczEpLmNyb3NzKGUyIC0gczIpOwoJaWYgKGQgPT0gMCkgLy8gaWYgcGFyYWxsZWwKCQlyZXR1cm4gey0oczEuY3Jvc3MoZTEsIHMyKSA9PSAwKSwgUCgwLCAwKX07CglhdXRvIHAgPSBzMi5jcm9zcyhlMSwgZTIpLCBxID0gczIuY3Jvc3MoZTIsIHMxKTsKCXJldHVybiB7MSwgKHMxICogcCArIGUxICogcSkgLyBkfTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgUixCOwogICAgY2luID4+IFIgPj4gQjsKICAgIGlmIChSICE9IEIpIHsKICAgICAgICBjb3V0IDw8ICJOb1xuIjsKICAgICAgICByZXR1cm4gMDsKICAgIH0KICAgIGludCBuID0gUjsKICAgIHZlY3RvcjxQb2ludDxkb3VibGU+PiBhKG4pLCBiKG4pOwogICAgZm9yIChhdXRvICZlIDogYSkgY2luID4+IGU7CiAgICBmb3IgKGF1dG8gJmUgOiBiKSBjaW4gPj4gZTsKICAgIAogICAgdmVjdG9yPGludD4gaWR4KG4pOwogICAgaW90YShpZHguYmVnaW4oKSwgaWR4LmVuZCgpLCAwKTsKICAgIGRvIHsKICAgICAgICBib29sIG9rID0gdHJ1ZTsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG4gLSAxOyBpKyspIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgbjsgaisrKSB7CiAgICAgICAgICAgICAgICBwYWlyPGludCwgUG9pbnQ8ZG91YmxlPj4gdCA9IGxpbmVJbnRlcihhW2ldLCBiW2lkeFtpXV0sIGFbal0sIGJbaWR4W2pdXSk7IAogICAgICAgICAgICAgICAgaWYgKHQuZmlyc3QgPT0gMCkgY29udGludWU7CiAgICAgICAgICAgICAgICBQb2ludDxkb3VibGU+IHR0ID0gdC5zZWNvbmQ7CiAgICAgICAgICAgICAgICBpZiAodHQueCA8PSBtYXgoYVtpXS54LCBiW2lkeFtpXV0ueCkgYW5kIHR0LnggPj0gbWluKGFbaV0ueCwgYltpZHhbaV1dLngpIGFuZCB0dC54IDw9IG1heChhW2pdLngsIGJbaWR4W2pdXS54KSBhbmQgdHQueCA+PSBtaW4oYVtqXS54LCBiW2lkeFtqXV0ueCkpIHsKICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChvaykgewogICAgICAgICAgICBjb3V0IDw8ICJZZXNcbiI7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgIH0gd2hpbGUobmV4dF9wZXJtdXRhdGlvbihpZHguYmVnaW4oKSwgaWR4LmVuZCgpKSk7CiAgICBjb3V0IDw8ICJOb1xuIjsKICAgIHJldHVybiAwOwp9Cgo=