//suhan lee,saitama university

#include <vector>
#include <list>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <deque>
#include <algorithm>
#include <utility>
#include <functional>
#include <sstream>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <ctime>
#include <climits>
#include <cassert>
#include <complex>
using namespace std;

inline int toInt(string s) {int v; istringstream sin(s);sin>>v;return v;}
template<class T> inline string toString(T x) {ostringstream sout;sout<<x;return sout.str();}
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<string> vs;
typedef pair<int, int> pii;
typedef long long ll;

#define ALL(a) (a).begin(),(a).end()
#define RALL(a) (a).rbegin(),(a).rend()
#define EXIST(s,e) ((s).find(e)!=(s).end())
#define rep(i,a,b) for(int i=(a);i<(b);++i)
#define repn(i,n) for(int i=0;i<n;i++)
#define EACH(t,i,c) for(t::iterator i=(c).begin(); i!=(c).end(); ++i)
#define pb push_back 
#define pf push_front
int delline(vector<string> gamemap,int h,int w,int n){
  while(true){
    int i,j;

    // for(i=0;i<h;i++)   
    //   cout<<gamemap[i]<<gamemap[i].size()<<endl;
    // cout<<" hehe 1"<<endl;


     
  //debug code
    // for(i=0;i<h;i++)   
    //   cout<<gamemap[i]<<endl;
    // cout<<h<<" "<<w<<" "<<n<<endl;
   
    for(j=0;j<w;j++){
      int delkazu=0;
      for(i=h-1;i>=0;i--){
	if(gamemap[i][j]=='.')
	  delkazu++;
	else {
	  gamemap[i+delkazu][j]=gamemap[i][j];
	  if(delkazu) {gamemap[i][j]='.';
	    }
	}
      }     

    }
  

    bool checkmap[h][w];
    for(i=0;i<h;i++)
      for(j=0;j<w;j++)
	checkmap[i][j]=false;


    for(i=0;i<h;i++){
      int renzoku=0;
      for(j=0;j<w;j++){
	if(j<(w-1)&&
	   gamemap[i][j]==gamemap[i][j+1]){
	  renzoku++;
	}
	else {
	  // cout<<renzoku<<"\n\n\n";
	  if(renzoku>=n-1){
	    if(gamemap[i][j-1]=='.'){
	      renzoku=0;
	      continue;
	    }
	    while(renzoku>=0){
	      checkmap[i][j-renzoku]=true;
	      renzoku--;
	    }	    
	  }
	  renzoku=0;
	}
      }
    }
    for(j=0;j<w;j++){
      int renzoku=0;
      for(i=0;i<h;i++){
	// cout<<i<<" "<<j<<" "<<renzoku<<endl;
	// cout<<h<<" "<<w<<" "<<renzoku<<endl;
	if(i<(h-1)&&
	   gamemap[i][j]==gamemap[i+1][j]){
	  renzoku++;

	}
	else {
	  // cout<<h<<" "<<w<<" "<<renzoku<<endl;
	  // cout<<i<<" "<<j<<" "<<renzoku<<endl;
	  if(renzoku>=n-1){
	    if(gamemap[i-1][j]=='.'){
	      renzoku=0;
	      continue;
	    }
	     while(renzoku>=0){
	       checkmap[i-renzoku][j]=true;
	       renzoku--;
	     }	    
	  }
	  renzoku=0;
	}
      }
  }

    int forroop=0;
    for(i=0;i<h;i++){
      for(j=0;j<w;j++){
	if(gamemap[i][j]!='.'){
	  forroop=1;
	  break;
	}
      }   
      if(forroop) break;
    }
    if(forroop==0) return 1;
    
    int delflag=0;
    for(j=0;j<w;j++)
      for(i=0;i<h;i++){
	if(checkmap[i][j]==true){ 
	  gamemap[i][j]='.';
	  delflag=1;
	}
      }
   
   
    if(delflag==0) return 0;


    // for(i=0;i<h;i++)   
    //   cout<<gamemap[i]<<endl;
    // cout<<" hehe 2"<<endl<<endl<<endl<<endl;
    
    // forroop=0;
    // for(i=0;i<h;i++){
    //   for(j=0;j<w;j++){
    // 	if(checkmap[i][j]==true){
    // 	  forroop=1;
    // 	  break;
    // 	}
    //   }   
    //   if(forroop) break;
    // }
    // if(i==h&&j==w) return 0;

  }
  
}
int testgame(vector<string>& gamemap,int h,int w,int n){
  for(int i=0;i<h;i++)
    for(int j=0;j<w-1;j++){
      vector<string> newmap=gamemap;
      char swapcha;
      swapcha=newmap[i][j];
      if(newmap[i][j]==newmap[i][j+1])
	continue;
      newmap[i][j]=newmap[i][j+1];
      newmap[i][j+1]=swapcha;
      if(delline(newmap,h,w,n)) return 1;
    }
  // for(int i=0;i<h-1;i++)
  //   for(int j=0;j<w;j++){
  //     vector<string> newmap=gamemap;
  //     char swapcha;
  //     swapcha=newmap[i][j];
  //     if(newmap[i][j]==newmap[i+1][j])
  // 	continue;
  //     newmap[i][j]=newmap[i+1][j];
  //     newmap[i+1][j]=swapcha;
  //     if(delline(newmap,h,w,n)) return 1;
  //   }
    if(delline(gamemap,h,w,n)) return 1;
  return 0;
}

int main(){
  int h,w,n;
  cin>>h>>w>>n;
  vector<string> gamemap(h);
  repn(i,h){
    string tmps;
    cin>>tmps;
    gamemap[i]=tmps;
  }
  if(testgame(gamemap,h,w,n)) cout<<"YES"<<endl;
  else cout<<"NO"<<endl;
  return 0;
}

Measured memory_bytes: 1216