#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(n);i++)
#define fir first
#define sec second
#define pb push_back
#define mp make_pair
using namespace std;
int n,m,p;
int fld[7][7][7];
int top[7][7];
bool ok(int x,int y,int z,int dx,int dy,int dz){
    if(fld[x][y][z]==-1||x<0||y<0||z<0||x>=n||y>=n||z>=n)return false;
    rep(i,m-1){
        int px=x+dx*i,py=y+dy*i,pz=z+dz*i;
        int nx=x+dx*(i+1),ny=y+dy*(i+1),nz=z+dz*(i+1);
        //if(x==0&&y==2&&dx==1&&dy==0&&dz==0)cout<<"ky"<<px<<" "<<py<<" "<<pz<<" "<<nx<<" "<<ny<<" "<<nz<<endl;;
        if(nx>=n||ny>=n||nz>=n||nx<0||ny<0||nz<0)return false;
        if(nz>top[nx][ny])return false;
        //if(x==0&&y==2&&dx==1&&dy==0&&dz==0)cout<<"ok"<<px<<" "<<py<<" "<<pz<<" "<<nx<<" "<<ny<<" "<<nz<<endl;
        if(fld[nx][ny][nz]!=fld[px][py][pz])return false;
    }
    //cout<<"ok"<<endl;
    return true;
}
bool rec(int x,int y){
    rep(i,n){
        if(ok(i,y,top[x][y],1,0,0))return true;
        //cout<<"we"<<endl;
        //cout<<x+i<<" "<<y<<" "<<top[x][y]-i<<endl;
        if(ok(x,i,top[x][y],0,1,0))return true;
        //cout<<"ok0.5"<<endl;
        if(ok(x,y,i,0,0,1))return true;
        if(ok(x-i,y-i,top[x][y],1,1,0))return true;
        if(ok(x+i,y+i,top[x][y],1,1,0))return true;
        if(ok(x-i,y+i,top[x][y],1,-1,0))return true;
        if(ok(x+i,y-i,top[x][y],1,-1,0))return true;
        if(ok(x+i,y,top[x][y]+i,1,0,1))return true;
        if(ok(x-i,y,top[x][y]-i,1,0,1))return true;
        //cout<<x+i<<" "<<y<<" "<<top[x][y]-i<<endl;
        if(ok(x+i,y,top[x][y]-i,1,0,-1))return true;
        //cout<<"ok0.5"<<endl;
        if(ok(x-i,y,top[x][y]+i,1,0,-1))return true;
        //cout<<"ok0.5"<<endl;
        if(ok(x,y+i,top[x][y]+i,0,1,1))return true;
        if(ok(x,y-i,top[x][y]-i,0,1,1))return true;
        if(ok(x,y+i,top[x][y]-i,0,1,-1))return true;
        if(ok(x,y-i,top[x][y]+i,0,1,-1))return true;
        //cout<<"ok1"<<endl;
        if(ok(x+i,y+i,top[x][y]+i,1,1,1))return true;
        if(ok(x-i,y-i,top[x][y]-i,1,1,1))return true;
        if(ok(x+i,y-i,top[x][y]-i,1,-1,-1))return true;
        if(ok(x-i,y+i,top[x][y]+i,1,-1,-1))return true;
        if(ok(x+i,y+i,top[x][y]-i,1,1,-1))return true;
        if(ok(x-i,y-i,top[x][y]+i,1,1,-1))return true;
        if(ok(x+i,y-i,top[x][y]+i,1,-1,1))return true;
        if(ok(x-i,y+i,top[x][y]-i,1,-1,1))return true;
    }
    return false;
}
int main(){
    while(1){
        string ans1="Draw";
        int ans2=-1;
        cin>>n>>m>>p;
        if(n+m+p==0)break;
        int x[p],y[p];
        memset(fld,-1,sizeof(fld));
        memset(top,0,sizeof(top));
        rep(i,p){cin>>x[i]>>y[i];x[i]--;y[i]--;}
        rep(i,p){
            //cout<<"wei"<<endl;
            if(i%2){
                fld[x[i]][y[i]][top[x[i]][y[i]]]=1;
            }else{
                fld[x[i]][y[i]][top[x[i]][y[i]]]=0;
            }
            if(rec(x[i],y[i])){
                if(i%2==0){
                    ans1="Black";ans2=i+1;
                }else{
                    ans1="White";ans2=i+1;
                }
                break;
            }
            top[x[i]][y[i]]++;
        }
        /*rep(i,n){
            rep(j,n){
                rep(k,n)cout<<fld[k][j][i]<<" ";cout<<endl;
            }cout<<endl;
        }*/
        if(ans1=="Draw"){
            cout<<"Draw"<<endl;
        }else{
            cout<<ans1<<" "<<ans2<<endl;
        }
    }
    
    return 0;
}

Measured memory_bytes: 3108