// H
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define bint __int128
#define _3bkarm cin.tie(NULL); cout.tie(NULL); ios::sync_with_stdio(false);
void getShitDone() {
int n, k;
cin >> n >> k;
vector< vector<int> > adj(k), ix(k);
for (int i = 0, a, c; i < n; ++i) {
cin >> a >> c; --c;
adj[c].push_back(a);
ix[c].push_back(i);
}
vector<int> a(n);
for (int i = 0; i < k; ++i) {
sort( adj[i].begin(), adj[i].end() );
sort( ix[i].begin(), ix[i].end() );
int m = adj[i].size();
for (int j = 0; j < m; ++j) {
a[ ix[i][j] ] = adj[i][j];
}
}
if ( is_sorted( a.begin(), a.end() ) ) {
cout << "Y";
} else {
cout << "N";
}
}
signed main() {
_3bkarm
int ts = 1;
// cin >> ts;
while (ts--) getShitDone();
return 0;
}
Ly8gSAojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIGludCBsb25nIGxvbmcKI2RlZmluZSBiaW50IF9faW50MTI4CiNkZWZpbmUgXzNia2FybSBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoKdm9pZCBnZXRTaGl0RG9uZSgpIHsKICAgIGludCBuLCBrOwogICAgY2luID4+IG4gPj4gazsKCiAgICB2ZWN0b3I8IHZlY3RvcjxpbnQ+ID4gYWRqKGspLCBpeChrKTsKICAgIGZvciAoaW50IGkgPSAwLCBhLCBjOyBpIDwgbjsgKytpKSB7CiAgICAgICAgY2luID4+IGEgPj4gYzsgLS1jOwogICAgICAgIGFkaltjXS5wdXNoX2JhY2soYSk7CiAgICAgICAgaXhbY10ucHVzaF9iYWNrKGkpOwogICAgfQoKICAgIHZlY3RvcjxpbnQ+IGEobik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGs7ICsraSkgewogICAgICAgIHNvcnQoIGFkaltpXS5iZWdpbigpLCBhZGpbaV0uZW5kKCkgKTsKICAgICAgICBzb3J0KCBpeFtpXS5iZWdpbigpLCBpeFtpXS5lbmQoKSApOwogICAgICAgIGludCBtID0gYWRqW2ldLnNpemUoKTsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG07ICsraikgewogICAgICAgICAgICBhWyBpeFtpXVtqXSBdID0gYWRqW2ldW2pdOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoIGlzX3NvcnRlZCggYS5iZWdpbigpLCBhLmVuZCgpICkgKSB7CiAgICAgICAgY291dCA8PCAiWSI7CiAgICB9IGVsc2UgewogICAgICAgIGNvdXQgPDwgIk4iOwogICAgfQp9CgpzaWduZWQgbWFpbigpIHsKICAgIF8zYmthcm0KCiAgICBpbnQgdHMgPSAxOwovLyAgICBjaW4gPj4gdHM7CiAgICB3aGlsZSAodHMtLSkgZ2V0U2hpdERvbmUoKTsKCiAgICByZXR1cm4gMDsKfQ==