Problem:
Score : 100 points

Problem Statement

You are given a string S of length 3 consisting of a, b and c. Determine if S can be obtained by permuting abc.

Constraints

|S|=3

S consists of a, b and c.

Input

Input is given from Standard Input in the following format:

S

Output

If S can be obtained by permuting abc, print Yes; otherwise, print No.

Sample Input 1

bac

Sample Output 1

Yes

Swapping the first and second characters in bac results in abc.

Sample Input 2

bab

Sample Output 2

No

Sample Input 3

abc

Sample Output 3

Yes

Sample Input 4

aaa

Sample Output 4

No

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

using System;
using System.Linq;
using System.Collections.Generic;
using System.Collections;
using System.Numerics;

namespace AtCoder.Beginner._092 {
  public class Abc_of_ABC {
    public static void Main() {
      WriteYesNo(string.Join("", Console.ReadLine().ToArray().OrderBy(x => x)) == "abc");
    }

    #region Template
    private static int ReadInt() { return int.Parse(Console.ReadLine()); }
    private static double ReadDouble() { return double.Parse(Console.ReadLine()); }
    private static long ReadLong() { return long.Parse(Console.ReadLine()); }
    private static char ReadChar() { return Console.ReadLine()[0]; }
    private static string[] ReadStringArray() { return Console.ReadLine().Split(' '); }
    private static int[] ReadIntArray() { return Console.ReadLine().Split(' ').Select(int.Parse).ToArray(); }
    private static double[] ReadDoubleArray() { return Console.ReadLine().Split(' ').Select(double.Parse).ToArray(); }
    private static long[] ReadLongArray() { return Console.ReadLine().Split(' ').Select(long.Parse).ToArray(); }
    private static char[] ReadCharArray() { return Console.ReadLine().ToArray(); }
    private static void WriteArraySingleLine(Object[] array) { Console.WriteLine(string.Join(" ", array)); }
    private static void WriteArrayMultiLine(Object[] array) { Console.WriteLine(string.Join(Environment.NewLine, array)); }
    private static void WriteYesNo(bool b) { Console.WriteLine((b) ? "Yes" : "No"); }
  }

  public class Point {
    public int X;
    public int Y;
    public Point(int X, int Y) { this.X = X; this.Y = Y; }
    public Point(int[] XY) { this.X = XY[0]; this.Y = XY[1]; }
    public double EuclideanDistance(Point point) { return EuclideanDistance(this, point); }
    public double ManhattanDistance(Point point) { return ManhattanDistance(this, point); }
    public double ChebyshevDistance(Point point) { return ChebyshevDistance(this, point); }
    public static double EuclideanDistance(Point point1, Point point2) { return Math.Sqrt(Math.Pow(point1.X - point2.X, 2) + Math.Pow(point1.Y - point2.Y, 2)); }
    public static double ManhattanDistance(Point point1, Point point2) { return Math.Abs(point1.X - point2.X) + Math.Abs(point1.Y - point2.Y); }
    public static double ChebyshevDistance(Point point1, Point point2) { return Math.Max(Math.Abs(point1.X - point2.X), Math.Abs(point1.Y - point2.Y)); }
  }
}
#endregion