module Main where

import           Data.Char (isLower)
import Text.ParserCombinators.ReadP (ReadP, char, satisfy, many, eof, readP_to_S, many1)

parser :: ReadP ()
-- parser = char 'A' *> lowerChar *> many lowerChar *> char 'C' *> many lowerChar *> lowerChar *> eof
parser = char 'A' *> many1 lowerChar *> char 'C' *> many1 lowerChar *> eof

lowerChar :: ReadP Char
lowerChar = satisfy isLower

f :: String -> Result
f s = if not . null . readP_to_S parser $ s then AC else WA

main :: IO ()
-- main = interact $ show . f
main = print . f =<< getLine

data Result
  = AC
  | WA
  deriving (Show, Eq)

tests :: [Bool]
tests =
  [ test1
  , test2
  , test3
  , test4
  , test5
  ]

test1, test2, test3, test4, test5 :: Bool
test1 = f "AtCoder" == AC
test2 = f "ACoder" == WA
test3 = f "AcycliC" == WA
test4 = f "AtCoCo" == WA
test5 = f "Atcoder" == WA
