#include<iostream>
#include<string>
#include<iomanip>
#include<cmath>
#include<vector>
#include<algorithm>

using namespace std;

#define int long long
#define rep(i,n) for(int i = 0; i < (n); i++)
#define INF ((long long)1e18)
#define MOD ((int)1e9+7)
#define endl "\n"

#define yn(f) ((f)?"Black":"White")
#define YN(f) ((f)?"YES":"NO")

#define MAX 9


int p, n, m;
		
int check(int board[MAX][MAX][MAX], int con[MAX][MAX], int col){
	int res = 0;
	
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++){
			for(int k = 0; k < con[i][j]; k++){
				int count = 0;
				if(board[k][i][j] != col) continue;
				
				for(int o = 1; o < 27; o++){
					int a = o%3, b = (o/3)%3, c = (o/9)%3;
					bool flag = true;
					
					if(a==2) a = -1;if(b==2) b = -1;if(c==2) c = -1;
					
					for(int l = 0; l < m; l++){
						
						if(i+l*b >= n || j+l*c >= n  || i+l*b < 0 || j+l*c < 0 || k+l*a < 0 || k+l*a >= con[i+l*b][j+l*c]){
							flag = false;
							break;
						}
						if(board[k+l*a][i+l*b][j+l*c] != col){
							flag = false;
							break;
						}
					}
					if(flag) return true;
					if(flag) count++;
				}
				res += count;
			}
		}
	}
	
	return res;
}
signed main(){
	cin.tie(0);
	ios::sync_with_stdio(false);
	cout<<fixed<<setprecision(10);
	
	while(true){
		int board[MAX][MAX][MAX] = {};
		int con[MAX][MAX] = {};
		int x, y;
		bool flag = true;
		int ans = 0, win = 0;
		
		cin>>n>>m>>p;
		
		if(!n && !m && !p) break;
		
		for(int i = 0; i < p; i++){
			cin>>x>>y;
			
			x--, y--;
			
			board[con[y][x]++][y][x] = flag + 1;
			
			if(!ans){
				if(check(board, con, flag+1)) ans = i+1;
				win = flag;
			}
			
			flag = !flag;
		}
		
		if(!ans) cout<<"Draw"<<endl;
		else cout<<yn(win)<<" "<<ans<<endl;
	}
	
	
	return 0;
}
