#include <bits/stdc++.h>
using namespace std;
void dfs (int v, vector <vector <int>>& g, vector<bool>& visited, int& res) {
visited[v] = true; res++;
for (int i : g[v]) {
if (!visited[i]) {
dfs(i, g, visited, res);
}
}
}
int main() {
cin.tie(0);
ios::sync_with_stdio(false);
int n, k;
cin >> n >> k;
vector <vector <int>> g(n);
vector <bool> visited(n, false);
int a, b;
cin >> a;
while (a != 0) {
cin >> b;
g[a - 1].push_back(b - 1);
cin >> a;
}
int res = 0;
// for (int i = 0; i < n; i++) {cout << i << ": "; for (int q : g[i]) {cout << q;}cout<<"\n";}
dfs(k - 1, g, visited, res);
if (res == n) {
cout << "Yes";
} else {
cout << "No";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGRmcyAoaW50IHYsIHZlY3RvciA8dmVjdG9yIDxpbnQ+PiYgZywgdmVjdG9yPGJvb2w+JiB2aXNpdGVkLCBpbnQmIHJlcykgewoJdmlzaXRlZFt2XSA9IHRydWU7IHJlcysrOwoJCglmb3IgKGludCBpIDogZ1t2XSkgewoJCWlmICghdmlzaXRlZFtpXSkgewoJCQlkZnMoaSwgZywgdmlzaXRlZCwgcmVzKTsKCQl9Cgl9Cn0KCmludCBtYWluKCkgewoJY2luLnRpZSgwKTsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCQoJaW50IG4sIGs7CgljaW4gPj4gbiA+PiBrOwoJCgl2ZWN0b3IgPHZlY3RvciA8aW50Pj4gZyhuKTsKCXZlY3RvciA8Ym9vbD4gdmlzaXRlZChuLCBmYWxzZSk7CgoJCglpbnQgYSwgYjsKCWNpbiA+PiBhOwoJCgl3aGlsZSAoYSAhPSAwKSB7CgkJY2luID4+IGI7CgkJCgkJZ1thIC0gMV0ucHVzaF9iYWNrKGIgLSAxKTsKCQkKCQljaW4gPj4gYTsKCQkKCX0KCQoJCgkKCWludCByZXMgPSAwOwoJCgkvLyBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykge2NvdXQgPDwgaSA8PCAiOiAiOyBmb3IgKGludCBxIDogZ1tpXSkge2NvdXQgPDwgcTt9Y291dDw8IlxuIjt9CgkKCWRmcyhrIC0gMSwgZywgdmlzaXRlZCwgcmVzKTsKCQoJaWYgKHJlcyA9PSBuKSB7CgkJY291dCA8PCAiWWVzIjsKCX0gZWxzZSB7CgkJY291dCA8PCAiTm8iOwoJfQoJcmV0dXJuIDA7Cn0=