#include <bits/stdc++.h>
using namespace std;
map<string,int>M;//0:?/1:ok/2:ng

int chk(string s){
	if(M[s]!=0)return M[s];
	if(s=="")return M[s]=1;
	if(s[0]!='m' || s[s.size()-1]!='w' || s.size()<3)return M[s]=2;
	string t=s.substr(1,s.size()-2);
	if(t.find("e")==string::npos)return M[s]=2;
	int flg=2;
	for(int i=0;i<t.size();i++){
		if(t[i]=='e'){
			if(chk(t.substr(0,i))==1 && chk(t.substr(i+1))==1)flg=1;
		}
	}
	return M[s]=flg;
}

int main(){
	
	string s;
	while(cin>>s)cout<<(chk(s)==1?"Cat":"Rabbit")<<endl;
	
	return 0;
}

### Prompt

Construct a cpp code solution to the problem outlined:

Example

Input

mmemewwemeww


Output

Cat

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
map<string,int>M;//0:?/1:ok/2:ng

int chk(string s){
	if(M[s]!=0)return M[s];
	if(s=="")return M[s]=1;
	if(s[0]!='m' || s[s.size()-1]!='w' || s.size()<3)return M[s]=2;
	string t=s.substr(1,s.size()-2);
	if(t.find("e")==string::npos)return M[s]=2;
	int flg=2;
	for(int i=0;i<t.size();i++){
		if(t[i]=='e'){
			if(chk(t.substr(0,i))==1 && chk(t.substr(i+1))==1)flg=1;
		}
	}
	return M[s]=flg;
}

int main(){
	
	string s;
	while(cin>>s)cout<<(chk(s)==1?"Cat":"Rabbit")<<endl;
	
	return 0;
}

```