#include<bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define INF 1000000010
#define EPS 1e-9
#define fst first
#define scd second

#define debug(x) cout<<x<<endl;
#define repi(i,x,n) for(int i=x;i<n;i++)
#define rep(i,n) repi(i,0,n)
#define lp(i,n) repi(i,0,n)
#define repn(i,n) for(int i=n;i>=0;i--)
#define int long long
#define endl "\n"


signed main(){
  cin.tie(0);	
  //ios::sync_with_stdio(false);
  int h,w,n;
  cin>>h>>w>>n;
  int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
  char mp[30][30];
  char mp2[30][30];
  rep(i,h){
    rep(j,w){
      cin>>mp[i][j];
    }
  }
  rep(i,h){
    rep(j,w-1){
      //cout<<i<<" "<<j<<endl;
      rep(k,h){
	rep(l,w){
	  mp2[k][l]=mp[k][l];
	}
      }
      
      swap(mp2[i][j],mp2[i][j+1]);
      rep(k,h){
	rep(l,w){
	  if(mp2[k][l]=='.'){
	    repn(m,k-1){
	      swap(mp2[m][l],mp2[m+1][l]);
	    }
	  }
	}
      }
      bool flag=true,ans=true;
      while(flag){
	//debug(1);
	flag=false;
	int mp3[30][30]={0};
	rep(k,h){
	  rep(l,w){
	    
	    int cnt=1;
	    while(l+cnt < w &&  mp2[k][l]==mp2[k][l+cnt] && mp2[k][l]!='.'){
	      cnt++;
	    }
	    if(cnt>=n){
	      flag=true;
	      rep(m,cnt){
		mp3[k][l+m]=1;
	      }
	    }
	  }
	}
	rep(k,w){
	  rep(l,h){
	    int cnt=1;
	    while(l+cnt < h &&  mp2[l][k]==mp2[l+cnt][k] && mp2[l][k]!='.'){
	      cnt++;
	    }
	    if(cnt>=n){
	      flag=true;
	      rep(m,cnt){
		mp3[l+m][k]=1;
	      }
	    }
	  }
	}
	rep(k,h){
	  rep(l,w){
	    if(mp3[k][l]==1) mp2[k][l]='.';
	  }
	}
	rep(k,h){
	  rep(l,w){
	    if(mp2[k][l]=='.'){
	      repn(m,k-1){
		swap(mp2[m][l],mp2[m+1][l]);
	      }
	    }
	  }
	}
	/*	rep(k,h){
	  rep(l,w){
	    cout<<mp2[k][l];
	  }
	  cout<<endl;
	  }*/
      }
      rep(k,h){
	rep(l,w){
	  //cout<<mp2[k][l];
	  if(mp2[k][l]!='.') ans=false;
	}
	//	cout<<endl;
      }
      if(ans){cout<<"YES"<<endl;return 0;}
    }
  }
  cout<<"NO"<<endl;

  return 0;
}

