Problem:
Score : 200 points

Problem Statement

You are given a string S. Each character of S is uppercase or lowercase English letter.
Determine if S satisfies all of the following conditions:

The initial character of S is an uppercase A.

There is exactly one occurrence of C between the third character from the beginning and the second to last character (inclusive).

All letters except the A and C mentioned above are lowercase.

Constraints

4 ≤ |S| ≤ 10 (|S| is the length of the string S.)

Each character of S is uppercase or lowercase English letter.

Input

Input is given from Standard Input in the following format:

S

Output

If S satisfies all of the conditions in the problem statement, print AC; otherwise, print WA.

Sample Input 1

AtCoder

Sample Output 1

AC

The first letter is A, the third letter is C and the remaining letters are all lowercase, so all the conditions are satisfied.

Sample Input 2

ACoder

Sample Output 2

WA

The second letter should not be C.

Sample Input 3

AcycliC

Sample Output 3

WA

The last letter should not be C, either.

Sample Input 4

AtCoCo

Sample Output 4

WA

There should not be two or more occurrences of C.

Sample Input 5

Atcoder

Sample Output 5

WA

The number of C should not be zero, either.

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

using System;
using System.Collections.Generic;
using System.Linq;
using static Atcoder;
using System.Threading.Tasks;
using System.ComponentModel;

public class Hello
{

    public static void Main()
    {
        //ABC_C();
        //return;
        string s = Console.ReadLine();
        string ans = "";
        if (s[0] != 'A')
        {
            Console.WriteLine("WA");
            return;
        }
        else
        {
            int count = 0;
            for (int i = 2; i < s.Length - 1; i++)
            {
                if (s[i] == 'C') count++;
            }
            if (count == 1)
            {
                bool flag = true;
                for (int i = 0; i < s.Length; i++)
                {
                    if (!char.IsLower(s[i]) && s[i] != 'A' && s[i] != 'C') flag = false;
                }
                Console.WriteLine((flag ? "AC" : "WA"));
                return;
            }
            else
            {
                Console.WriteLine("WA");
                return;
            }
        }


    }

    public static void ABC_C()
    {
        int[] DG = SpIntRead(' ');
        int D = DG[0];
        int G = DG[1];
        int[,] p = new int[100, 2];
        int[] box;
        for (int i = 0; i < D; i++)
        {
            box = SpIntRead(' ');
            p[i, 0] = box[0];
            p[i, 1] = box[1];
        }
        int ans = solve(D, G, p);
    }

    public static int solve(int D, int G, int[,] p)
    {
        for (int i = 0; i < D; i++)
        {

        }
        return 0;
    }
}


public class Atcoder
{
    static void Swap<T>(ref T a, ref T b)
    {
        var t = a;
        a = b;
        b = t;
    }
    public static long LCM(long a, long b)
    {
        long c = a * b;
        if (a < b) Swap(ref a, ref b);
        long d = a % b;
        while (d != 0)
        {
            a = b;
            b = d;
            d = a % b;
        }
        return c / b;
    }
    public static string strReverce(string s)
    {
        return new string(s.Reverse().ToArray());
    }
    public static int intRead()
    {
        return int.Parse(Console.ReadLine());
    }
    public static bool IsPrime(int n)
    {
        if (n < 2) return false;
        if (n == 2) return true;
        if (n % 2 == 0) return false;

        //double sqrtNum = Math.Sqrt(n);
        for (int i = 3; i < n; i += 2)
        {
            if (n % i == 0) return false;
        }
        return true;
    }
    public static string[] SpRead(char c)
    {
        return Console.ReadLine().Split(c);
    }
    public static int[] SpIntRead(char c)
    {
        return Console.ReadLine().Split(' ').Select(a => int.Parse(a)).ToArray();
    }

}