Problem:
Score: 100 points

Problem Statement

A triple of numbers is said to be poor when two of those numbers are equal but the other number is different from those two numbers.

You will be given three integers A, B, and C. If this triple is poor, print Yes; otherwise, print No.

Constraints

A, B, and C are all integers between 1 and 9 (inclusive).

Input

Input is given from Standard Input in the following format:

A B C

Output

If the given triple is poor, print Yes; otherwise, print No.

Sample Input 1

5 7 5

Sample Output 1

Yes

A and C are equal, but B is different from those two numbers, so this triple is poor.

Sample Input 2

4 4 4

Sample Output 2

No

A, B, and C are all equal, so this triple is not poor.

Sample Input 3

4 9 6

Sample Output 3

No

Sample Input 4

3 3 4

Sample Output 4

Yes

Solution in C# (Mono 4.6.2.0) (judge verdict: Accepted)

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using static System.Console;
using static System.Math;

namespace AtCoder {
  public class Program {
    public static void Main (string[] args) {
      new Program ().Solve (new ConsoleInput (Console.In, ' '));
    }
    public void Solve (ConsoleInput cin) {
      var a = cin.ReadInt;
      var b = cin.ReadInt;
      var c = cin.ReadInt;
      if (a == b && b == c) {
        WriteLine ("No");
      } else if (a != b && b != c && a != c) {
        WriteLine ("No");
      } else {
        WriteLine ("Yes");
      }

    }
  }

  public class ConsoleInput {
    private readonly System.IO.TextReader _stream;
    private char _separator = ' ';
    private Queue<string> inputStream;
    public ConsoleInput (System.IO.TextReader stream, char separator = ' ') {
      this._separator = separator;
      this._stream = stream;
      inputStream = new Queue<string> ();
    }
    public string Read {
      get {
        if (inputStream.Count != 0) return inputStream.Dequeue ();
        string[] tmp = _stream.ReadLine ().Split (_separator);
        for (int i = 0; i < tmp.Length; ++i)
          inputStream.Enqueue (tmp[i]);
        return inputStream.Dequeue ();
      }
    }
    public string ReadLine { get { return _stream.ReadLine (); } }
    public int ReadInt { get { return int.Parse (Read); } }
    public long ReadLong { get { return long.Parse (Read); } }
    public double ReadDouble { get { return double.Parse (Read); } }
    public string[] ReadStrArray (long N) { var ret = new string[N]; for (long i = 0; i < N; ++i) ret[i] = Read; return ret; }
    public int[] ReadIntArray (long N) { var ret = new int[N]; for (long i = 0; i < N; ++i) ret[i] = ReadInt; return ret; }
    public long[] ReadLongArray (long N) { var ret = new long[N]; for (long i = 0; i < N; ++i) ret[i] = ReadLong; return ret; }
  }
}