#include<bits/stdc++.h>
#define r(i,n) for(int i=0;i<n;i++)
using namespace std;
string t[31],s[31];
int h,w,n,used[40][40];
bool del(){
	r(i,h)r(j,w)used[i][j]=0;
	r(i,h){
		r(j,w-n+1){
			int p=0;
			r(k,n)if(k)if(t[i][j]!=t[i][j+k]||t[i][j+k]=='.')p++;
			if(!p)r(k,n)used[i][j+k]=1;
		}
	}
	r(i,w){
		r(j,h-n+1){
			int p=0;
			r(k,n)if(k)if(t[j][i]!=t[j+k][i]||t[j+k][i]=='.')p++;
			if(!p)r(k,n)used[j+k][i]=1;
		}
	}
	int c=0;
	r(i,h)r(j,w)
	  if(used[i][j])
	  	t[i][j]='.',c++;
	  if(c)return 0;
	  return 1;
}
void fall(){
	r(k,h)
	r(i,h-1)r(j,w)
	  if(t[i+1][j]=='.'&&t[i][j]!='.')
	  	swap(t[i][j],t[i+1][j]);
}
bool check(){
	r(i,h)r(j,w)
	 if(t[i][j]!='.')return 0;
	return 1;
}
int main(){

	cin>>h>>w>>n;

	r(i,h) cin>>s[i];

	r(i,h)r(j,w-1){

	 	r(k,h) t[k]=s[k];

	 	swap(t[i][j],t[i][j+1]);

	 	r(k,w+h){
	 		fall();

	 		if(del())break;;

	 		fall();

	 		if(check())goto L;
	 	}
	 }
	 cout<<"NO"<<endl;
	 if(0)L:cout<<"YES"<<endl;
}