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++14 (GCC 5.4.1) (judge verdict: Wrong Answer)

    #include <iostream>
    #include <bits/stdc++.h>
    using namespace std;

    #define pb push_back
    #define F first
    #define S second
    #define fo(i,a,b)  for(int i = a; i < b; i++)

    using ll = long long;
    using ld = long double;
    using ul = unsigned long long;
    using ii = pair<int, int>;
    #define Mosta     ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    #define ReadFile            freopen("input.in","r",stdin)
    #define WriteFile           freopen("output.txt","w",stdout)
    const ll mod7 = 1000000007,mod = 1000000000,OO = 0x3f3f3f3f;
    const ld EPS = 1e-7;
    double Pi=acos(-1);
    const ld rad=Pi/180.0;
    ll power(ll x, ll y, ll p)
    {
        ll res = 1;
        while (y > 0)
        {
            if (y & 1)
                res = (res*x) % p;
            y = y>>1;
            x = (x*x) % p;
        }
        return res;
    }
    ll nCr (ll n,ll m)
    {
        return(m == 0)?1:n*nCr(n-1,m-1)/m;
    }
    /*****************************************************/


    int main()
    {
        string s;
        cin >> s;

        if(s[0] == 'A' && s[2] == 'C' || s[s.length()-2] == 'C'){
            int x = 0;
            for(int i = 0; i < s.length(); ++i){
                if(s[i] == 'C')
                    x++;
            }
            bool found = false;
            for(int i = 0; i < s.length(); ++i){
                if(s[i] != 'A' && s[i] != 'C' && s[i] != 'c' && isupper(s[i])){
                    found = true;
                    break;
                }
            }
            if(!found && x == 1)
                cout << "AC\n";
            else
                cout << "WA\n";
        }else{
            cout << "WA\n";
        }

        return 0;
    }