#include<bits/stdc++.h>
using namespace std;
#define nl '\n'
#define space cout << ' '
#define ll long long
#define ull unsigned long long
#define gc getchar_unlocked

#define forV(v)     for(auto &x : v) cout << x << ' '
#define fo(i,n)     for (ll i = 0; i < n; ++i)
#define FOR(i,k,n)  for (auto i = k; i <= n; ++i)
#define FORR(i,k,n) for (auto i = k; i >= n; --i)

#define deb(x) cout << #x << " = " << x << endl
#define deb2(x, y) cout << #x << " = " << x << ", " << #y << " = " << y << endl
#define pb push_back
#define eb emplace_back
#define mp make_pair
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define clr(x) memset(x, 0, sizeof(x))
#define sortall(x) sort(all(x))
#define tr(it, a) for(auto it = a.begin(); it != a.end(); it++)
#define MOD 1000000007
#define PI 3.1415926535897932384626
#define FormulaToConvertMicrosecondsToSeconds(duration) duration / 1e+6

typedef pair<int, int>  pii;
typedef pair<ll, ll>     pl;
typedef vector<int>      vi;
typedef vector<ll>       vl;
typedef vector<pii>    vpii;
typedef vector<pl>      vpl;
typedef vector<vi>      vvi;
typedef vector<vl>      vvl;
mt19937_64 rang(chrono::high_resolution_clock::now().time_since_epoch().count());

template<typename T> void scan(T &x);
template<typename T> void print(T n);
//==================================

bool isPrime(int numm) {
	if (numm <= 1)
		return false;

	if (numm == 2)
		return true;

	if (numm % 2 == 0)
		return false;

	int counter = 3;

	while ((counter * counter) <= numm) {
		if (numm % counter == 0) {
			return false;
		} else {
			counter += 2;
		}
	}

	return true;
}

int mpow(int base, int exp) {
	base %= MOD;
	int result = 1;
	while (exp > 0) {
		if (exp & 1) result = ((ll)result * base) % MOD;
		base = ((ll)base * base) % MOD;
		exp >>= 1;
	}
	return result;
}

ll binarySearch(int a[], int l, int r, int x)
{
	while (l <= r)
	{
		int mid_index = l + (r - l) / 2;

		if (a[mid_index] == x)
			return mid_index;
		else if ( x > a[mid_index])
		{
			l = mid_index + 1;
		}
		else if ( x < a[mid_index])
		{
			r = mid_index - 1;
		}
	}
	return -1;
}

void permuteString(string s)
{
	sortall(s);

	do {
		cout << s << nl;
	} while (next_permutation(all(s)));

}

void permuteArray(int array[], int n)
{
	sort(array, array + n);

	do {
		FOR(i, 0, n - 1)
		cout << array[i] << ' ';

		cout << nl;
	} while (next_permutation(array, array + n));
}

void permuteVector(vector<int> v)
{
	sortall(v);

	do {
		forV(v);

		cout << nl;
	} while (next_permutation(all(v)));
}


ll largestPrimeFactor(ll n)
{
	for (int factor = 2; factor * factor <= n; ++factor)
	{
		while (n % factor == 0 and n != factor)
			n /= factor;
	}

	return n;
}

ull numberOfDivisors(ull n)
{
	ull divisors = 0;
	if (n == 1)
		return 1;


	for (int i = 1; i * i <= n; ++i) // we need to CHECK at least sqrt(n) TIMES (inclusive) if 'i' is a divisor of n.
	{
		if (n % i == 0)
		{
			divisors += 2;
		}
	}
	return divisors;
}

//==================================



void solve() //Task A. Double Cola!!! Two teams composing !
{

	vector<int> v(3);
	cin >> v[0] >> v[1] >> v[2];

	sortall(v);

	int c = 1;
	FOR(i, 1, 2) {
		if (v[i] == v[i - 1])
			++c;
	}

	if (c == 2)
		cout << "Yes";
	else
		cout << "No";



}

/* TESTS:






*/

//==================================
int32_t main()
{
	//--------------------------------
	auto t1 = std::chrono::high_resolution_clock::now();

	int t = 1;
	//cin >> t;
	while (t--) {
		solve();
	}


	auto t2 = std::chrono::high_resolution_clock::now();
	auto duration = std::chrono::duration_cast<std::chrono::microseconds>( t2 - t1 ).count();

	cerr << nl << nl << "Duration of the algo: " << FormulaToConvertMicrosecondsToSeconds(duration) << " secs" << nl << nl;
	return 0;
}


template<typename T> void scan(T & x)
{
	x = 0;
	bool neg = 0;
	register T c = getchar();

	if (c == '-')
		neg = 1, c = getchar();

	while ((c < 48) || (c > 57))
		c = getchar();

	for ( ; c < 48 || c > 57 ; c = getchar());

	for ( ; c > 47 && c < 58; c = getchar() )
		x = (x << 3) + ( x << 1 ) + ( c & 15 );

	if (neg) x *= -1;
}

template<typename T> void print(T n)
{
	bool neg = 0;

	if (n < 0)
		n *= -1, neg = 1;

	char snum[65];
	int i = 0;
	do
	{
		snum[i++] = n % 10 + '0';
		n /= 10;
	}

	while (n);
	--i;

	if (neg)
		putchar('-');

	while (i >= 0)
		putchar(snum[i--]);

}

Measured memory_bytes: 3784