//#define __USE_MINGW_ANSI_STDIO 0
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<ll> VL;
typedef vector<VL> VVL;
typedef pair<int, int> PII;

#define FOR(i, a, n) for (ll i = (ll)a; i < (ll)n; ++i)
#define REP(i, n) FOR(i, 0, n)
#define ALL(x) x.begin(), x.end()
#define MP make_pair
#define PB push_back
#define MOD 1000000007
#define INF (1LL<<30)
#define LLINF (1LL<<60)
#define PI 3.14159265359
#define EPS 1e-12
//#define int ll

int a[10][10][10], n, m, p, x[1000], y[1000];
int dx[] = {-1, 0, 1, 1, 1, 0, -1, -1}, dy[] = {-1, -1, -1, 0, 1, 1, 1, 0};

bool check(int a1, int a2) {
	return (0 <= a1 && a1 < n && 0 <= a2 && a2 < n);
}

signed main(void)
{
	while(true) {
		REP(i, n) REP(j, n) REP(k, n) a[i][j][k] = 0;
		cin >> n >> m >> p;
		if(!n && !m && !p) break;
		REP(i, p) {cin >> x[i] >> y[i]; x[i]--; y[i]--;}
		REP(i, p) {
			int z = 0;
			while(a[x[i]][y[i]][z] != 0) z++;
			a[x[i]][y[i]][z] = i%2+1;

			/*cout << "i:" << i << endl;
			REP(l, n) {
				REP(k, n) {
					REP(j, n) {
						cout << a[j][k][l] << " ";
					}
					cout << endl;
				}
				cout << "----------" << endl;
			}*/

			bool win = false;
			REP(ax, n) REP(ay, n) REP(az, n) {
				//cout << ax << " " << ay << " " << az << endl;
				REP(j, 8) {
					int c = 1;
					//if(i == 5 && ax == 0 && ay == 2 && az == 0) cout << a[ax][ay][az] << " ";
					FOR(l, 1, m) {
						if(check(ax+l*dx[j], ay+l*dy[j]) && a[ax+l*dx[j]][ay+l*dy[j]][az] != 0 && a[ax+(l-1)*dx[j]][ay+(l-1)*dy[j]][az] == a[ax+l*dx[j]][ay+l*dy[j]][az]) c++;
						//if(i == 5 && ax == 0 && ay == 2 && az == 0) cout << a[ax+l*dx[j]][ay+l*dy[j]][az] << " ";
					}
					//cout << "  a:" << j << " " << c << endl;
					if(c == m) {win = true;}
				}
				REP(j, 8) {
					int c = 1;
					FOR(l, 1, m) {
						if(check(ax+l*dx[j], az+l*dy[j]) && a[ax+l*dx[j]][ay][az+l*dy[j]] != 0 && a[ax+(l-1)*dx[j]][ay][az+(l-1)*dy[j]] == a[ax+l*dx[j]][ay][az+l*dy[j]]) c++;
					}
					//cout << "  b:" << j << " " << c << endl;
					if(c == m) {win = true;}
				}
				REP(j, 8) {
					int c = 1;
					FOR(l, 1, m) {
						if(check(az+l*dy[j], ay+l*dx[j]) && a[ax][ay+l*dx[j]][az+l*dy[j]] != 0 && a[ax][ay+(l-1)*dx[j]][az+(l-1)*dy[j]] == a[ax][ay+l*dx[j]][az+l*dy[j]]) c++;
					}
					//cout << "  c:" << j << " " << c << endl;
					if(c == m) {win = true;}
				}
				REP(j, 8) {
					int c = 1;
					//if(i == 5 && ax == 0 && ay == 2 && az == 0) cout << a[ax][ay][az] << " ";
					//cout << a[ax][ay][az] << " ";
					FOR(l, 1, m) {
						if(check(ax+l*dx[j], ay+l*dy[j]) && check(az-l+1, az-l) && a[ax+l*dx[j]][ay+l*dy[j]][az-l] != 0 && a[ax+(l-1)*dx[j]][ay+(l-1)*dy[j]][az-l+1] == a[ax+l*dx[j]][ay+l*dy[j]][az-l]) c++;
						//cout << a[ax+l*dx[j]][ay+l*dy[j]][az+l] << " ";
					}
					//cout << endl;
					//cout << "  a:" << j << " " << c << endl;
					if(c == m) {win = true; /*cout << "a:" << j << endl;*/}
				}
				REP(j, 8) {
					int c = 1;
					//if(i == 5 && ax == 0 && ay == 2 && az == 0) cout << a[ax][ay][az] << " ";
					//cout << a[ax][ay][az] << " ";
					FOR(l, 1, m) {
						if(check(ax+l*dx[j], ay+l*dy[j]) && check(az+l-1, az+l) && a[ax+l*dx[j]][ay+l*dy[j]][az+l] != 0 && a[ax+(l-1)*dx[j]][ay+(l-1)*dy[j]][az+l-1] == a[ax+l*dx[j]][ay+l*dy[j]][az+l]) c++;
						//cout << a[ax+l*dx[j]][ay+l*dy[j]][az+l] << " ";
					}
					//cout << endl;
					//cout << "  a:" << j << " " << c << endl;
					if(c == m) {win = true; /*cout << "b:" << ax << " " << ay << " " << az << " " << j << endl;*/}
				}
			}
			if(win) {
				if(i%2) cout << "White " << i+1 << endl;
				else cout << "Black " << i+1 << endl;
				break;
			}
			if(i == p-1 && !win) {
				cout << "Draw" << endl;
			}
		}
	}

	return 0;
}

Measured memory_bytes: 3024