#define _USE_MATH_DEFINES
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <limits.h>
#define EPS 1e-10
#define sq(n) ((n)*(n))
#define rep(i,n) for(i=0;i<n;i++)
#define rev(i,n) for(i=n-1;i>=0;i--)
#define sort(a,n) qsort(a,n,sizeof(TYPE),cmp)
#define sort_r(a,n) qsort(a,n,sizeof(TYPE),cmp_r);
#define chsort(s,n) qsort(s,n,sizeof(char),cmp)
#define chsort_r(s,n) qsort(s,n,sizeof(char),char_cmp_r);
#define TYPE int
#define MEMSET(a) memset(a,0,sizeof(a))
long long mod=(long long)1e09+7;
int inf=1<<29;
long long llinf=1ll<<60;

int in(void){
    int i;scanf("%d",&i);
    return i;
}
long long llin(void){
    long long i;scanf("%lld",&i);
    return i;
}
double din(void){
    double i;scanf("%lf",&i);
    return i;
}
void chin(char s[]){
    scanf("%s",s);
}
void print(int a){
    printf("%d\n",a);
}
void llprint(long long a){
    printf("%lld\n",a);
}
void dprint(double a){
    printf("%.10f\n",a);
}
void print2(int a,int b){
    printf("%d %d\n",a,b);
}
long long max(long long a,long long b){
    return a>b?a:b;
}
long long min(long long a,long long b){
    return a<b?a:b;
}
int cmp(const void *a,const void *b){
    return *(TYPE *)a-*(TYPE *)b;
}
int cmp_r(const void *a,const void *b){
    return *(TYPE *)b-*(TYPE *)a;
}
int char_cmp(const void *a,const void *b){
    return strcmp(*(char **)a,*(char **)b);
}
int char_cmp_r(const void *a,const void *b){
    return strcmp(*(char **)b,*(char **)a);
}
void swap(int *a,int *b){
    int t=*a;
    *a=*b;
    *b=t;
}
long long gcd(long long x,long long y){
    return x%y?gcd(y,x%y):y;
}
long long lcm(long long x,long long y){
    return x/gcd(x,y)*y;
}

// write codes below this
// when you use 'sort',
// make sure TYPE macro is correct
int dx[]={1,0,0,1,1,0,0,1,-1,1,1,1,1};
int dy[]={0,1,0,0,0,1,1,1,-1,1,1,-1,-1};
int dz[]={0,0,1,1,-1,1,-1,0,0,1,-1,1,-1};
int b[15][15][15];
int check(int n,int m){
    int i,j,k,l,o,x,y,z;
    /*rep(i,n){
        rep(j,n){
            rep(k,n){
                printf("%d",b[k+1][j+1][i+1]);
            }
            puts("");
        }
        puts("");
    }*/
    rep(i,n){
        rep(j,n){
            rep(k,n){
                x=i+1;
                y=j+1;
                z=k+1;
                rep(l,13){
                    rep(o,m-1){
                        //printf("(%d %d %d),%d\n",x,y,z,b[x][y][z]);
                        if(!b[x][y][z]||b[x][y][z]!=b[x+dx[l]][y+dy[l]][z+dz[l]])
                            break;
                        x+=dx[l];
                        y+=dy[l];
                        z+=dz[l];
                    }
                    if(o==m-1)return 1;
                }
            }
        }
    }
    return 0;
}

int main(void){
    int n,m,p,x,y,z[8][8],i;
    while(1){
        LOOP:
        n=in();
        m=in();
        p=in();
        if(!n)break;
        MEMSET(z);
        MEMSET(b);
        rep(i,p){
            x=in();
            y=in();
            b[x][y][z[x][y]+1]=i%2+1;
            z[x][y]++;
            if(check(n,m)){
                printf("%s %d\n",i%2?"White":"Black",i+1);
                for(i++;i<p;i++)in(),in();
                goto LOOP;
            }
        }
        puts("Draw");
    }
    return 0;
}
