#include <bits/stdc++.h>
#define syosu(x) fixed<<setprecision(x)
using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
typedef pair<int,int> P;
typedef pair<double,double> pdd;
typedef pair<ll,ll> pll;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<double> vd;
typedef vector<vd> vvd;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef vector<string> vs;
typedef vector<P> vp;
typedef vector<vp> vvp;
typedef vector<pll> vpll;
typedef pair<int,P> pip;
typedef vector<pip> vip;
const int inf=1<<30;
const ll INF=1ll<<60;
const double pi=acos(-1);
const double eps=1e-11;
const ll mod=1e9+7;
const int dx[4]={-1,0,1,0},dy[4]={0,-1,0,1};


int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int h,w,n;
	cin>>h>>w>>n;
	vs a(w,string(h,'.'));
	for(int i=0;i<h;i++) for(int j=0;j<w;j++) cin>>a[w-j-1][h-i-1];
	swap(h,w);
	bool B=0;
	for(int i=0;i<h-1;i++) for(int j=0;j<w;j++) if(a[i][j]!=a[i+1][j]){
		auto b=a;
		swap(b[i][j],b[i+1][j]);
		int ikkai=0;
//		for(int k=0;k<h;k++) cout<<b[k]<<endl;
		while(1){
			if(ikkai){
			vp c;
			for(int k=0;k<h;k++){
				for(int l=0;l<w;l++) if(isalpha(b[k][l])){
					int x=k,y=l;
					if(y+n-1<w){
						bool tmp=1;
						for(int I=1;I<n;I++) if(b[x][y]!=b[x][y+I]) tmp=0;
						if(tmp==1){
							for(int I=0;I<n;I++) c.push_back({x,y+I});
						}
					}
					if(x+n-1<h){
						bool tmp=1;
						for(int I=1;I<n;I++) if(b[x][y]!=b[x+I][y]) tmp=0;
						if(tmp==1){
							for(int I=0;I<n;I++) c.push_back({x+I,y});
						}
					}
				}
			}
			for(auto p:c) b[p.first][p.second]='.';
			if(c.empty()&&ikkai) break;
			}
			vs b_(h);
			for(int k=0;k<h;k++){
				for(int l=0;l<w;l++) if(isalpha(b[k][l])) b_[k]+=b[k][l];
				while(b_[k].size()<w) b_[k]+='.';
			}
			b=b_;
			ikkai=1;
//		for(int k=0;k<h;k++) cout<<b[k]<<endl;
		}
		if(b==vs(h,string(w,'.'))) B=1;
	}
	cout<<(B?"YES":"NO")<<endl;
}
