Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

Problem A:
CatChecker

外見からねこかどうかわからない動物がいる. あなたは, 鳴き声がねこの鳴き声であればねこであり, そうでなければうさぎであると判定することにした.

ねこの鳴き声は次のように定義される.

"" (empty string) はねこの鳴き声である.

$X$, $Y$ がねこの鳴き声であれば 'm' + $X$ + 'e' + $Y$ + 'w' は猫の鳴き声である. ただし + は文字列の連結を表す.

以上で定義されるものだけがねこの鳴き声である.

BNF で表すとねこの鳴き声 $CAT$ は

$CAT$ := "" (empty string) $|$ 'm' + $CAT$ + 'e' + $CAT$ + 'w'

と定義される.

鳴き声を表す文字列 $S$ が与えられる. 鳴き声から動物が何であるか判定せよ.

Constraints

$S$ will contain between 1 and 500 characters, inclusive. Each character in $S$ will be 'm', 'e' or 'w'.

Input

入力は以下の形式で与えられる:

$S$

Output

$S$ が猫の鳴き声であれば "Cat", そうでなければ "Rabbit" と1 行に出力せよ.

Sample Input 1

mmemewwemeww

Sample Output 1

Cat

Sample Input 2

mewmew

Sample Output 2

Rabbit

Solution in C++ (judge verdict: Time Limit Exceeded)

#include<iostream>

using namespace std;


bool parse(string s){
  if(s == "") return true;
  
  if(s[0] == 'm' && s[s.length()-1] == 'w'){
    s = s.substr(1,s.length()-2);

    bool res = false;
    for(int i = 0; i < (int)s.length(); i++)
      if(s[i] == 'e'){
	string a = s.substr(0,i);
	string b = s.substr(i+1);
	res = res||parse(a)&&parse(b);
      }
    return res;
  }
  
  return false;
}

int main(){

  string s;
  cin >> s;
  cout << (parse(s)?"Cat":"Rabbit") << endl;
  return 0;
}