#define _USE_MATH_DEFINES
#include <algorithm>
#include <cstdio>
#include <functional>
#include <iostream>
#include <cfloat>
#include <climits>
#include <cstring>
#include <cmath>
#include <map>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <string>
#include <time.h>
#include <vector>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> i_i;
typedef pair<ll, int> ll_i;
typedef pair<double, int> d_i;
typedef pair<ll, ll> ll_ll;
typedef pair<double, double> d_d;
struct edge { int u, v; ll w; };

ll MOD = 1000000007;
ll _MOD = 1000000009;
double EPS = 1e-10;

bool check(int h, int w, int n, vector<string> a) {
	for (;;) {
		for (int j = 0; j < w; j++)
			for (int i = h - 1; i >= 0; i--) {
				if (a[i][j] == '.') continue;
				int tmp = a[i][j];
				a[i][j] = '.';
				for (int i = h - 1; i >= 0; i--)
					if (a[i][j] == '.') {
						a[i][j] = tmp;
						break;
					}
			}
		vector< vector<bool> > b(h, vector<bool>(w));
		for (int i = 0; i < h; i++)
			for (int j = 0; j < w;) {
				int _j;
				for (_j = j + 1; _j < w && a[i][_j] == a[i][j]; _j++);
				if (a[i][j] != '.' && _j - j >= n)
					for (int k = j; k < _j; k++)
						b[i][k] = true;
				j = _j;
			}
		for (int j = 0; j < w; j++)
			for (int i = 0; i < h;) {
				int _i;
				for (_i = i + 1; _i < h && a[_i][j] == a[i][j]; _i++);
				if (a[i][j] != '.' && _i - i >= n)
					for (int k = i; k < _i; k++)
						b[k][j] = true;
				i = _i;
			}
		bool flag = false;
		for (int i = 0; i < h; i++)
			for (int j = 0; j < w; j++) {
				if (b[i][j]) {
					a[i][j] = '.';
					flag = true;
				}
			}
		if (!flag) {
			for (int i = 0; i < h; i++)
				for (int j = 0; j < w; j++)
					if (a[i][j] != '.') return false;
			return true;
		}
	}
}

int main() {
	int h, w, n; cin >> h >> w >> n;
	vector<string> a(h);
	for (int i = 0; i < h; i++) cin >> a[i];
	for (int i = 0; i < h; i++)
		for (int j = 0; j + 1 < w; j++) {
			swap(a[i][j], a[i][j + 1]);
			if (check(h, w, n, a)) {
				cout << "YES" << endl;
				return 0;
			}
			swap(a[i][j], a[i][j + 1]);
		}
	cout << "NO" << endl;
}