#define REP(i,n) for(int i=0; i<(int)(n); i++)

#include <cstdio>
inline int getInt(){ int s; scanf("%d", &s); return s; }

#include <set>

using namespace std;

char b[1024][1024];
int memo[1024][1024];
bool win[1024][1024];

int main(){
  const int h = getInt();
  const int w = getInt();
  const int k = getInt();

  REP(i,h) scanf("%s", b[i]);

  REP(i,h) REP(j,w){
    int d = 0;
    if(i) d = max(d, memo[i - 1][j] - 1);
    if(j) d = max(d, memo[i][j - 1] - 1);
    if(d == 0){
      win[i][j] = false;
      if(b[i][j] == '.') memo[i][j] = k + 1;
      else memo[i][j] = 0;
    }else{
      win[i][j] = (b[i][j] == '.');
      memo[i][j] = d;
    }
  }
  // REP(i,h){ REP(j,w) printf("%d", win[i][j]); puts(""); }
  puts(win[h - 1][w - 1] ? "Chieno" : "Cacao");
  // pyon pyon surunja^~
  return 0;
}
