#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;
}