import numpy as np

moves = [
    (-2,-1),(2,-1),(-2,1),(2,1),
    (-1,-2),(1,-2),(-1,2),(1,2),
]

def ok(x):
    return x >= 0 and x < 8

def get_next(n):
    i = n % 8
    j = n // 8
    res = []
    for di,dj in moves:
        ci, cj = i+di,j+dj
        if ok(ci) and ok(cj):
            res.append(ci + cj * 8)
    
    return res

def main():
    i1, j1 = [int(x) for x in input().split()]
    i2, j2 = [int(x) for x in input().split()]
    
    
    # A = np.zeros((64*64,64*64))
    b = np.ones((64*64,))
    A = np.eye(64*64)
    
    for p1 in range(64):
        for p2 in range(64):
            if p1 == p2:
                pass
                b[p1*64 + p2] = 0.
            else:
                moves = get_next(p1)
                for p1x in moves:
                    A[p1*64 + p2][p2*64 + p1x] += 1. / len(moves)
                    # A[p2*64 + p1x][p1*64 + p2] -= 1. / len(moves)

    A = A[:300,:300]
    b = b[:300]
    # x = np.dot(np.linalg.inv(A), b)
    x = np.linalg.solve(A, b)
    return    
    #print()
    #print(x.min())
    #print((x == 0).sum() + (x == 1).sum())
    #print(A[1][A[1] != 0])
    p = x[(i1+j1*8)*64+(i2+j2*8)]
    if np.abs(p - 0.5) < 1e-6:
        print("draw")
    elif p > 0.5:
        print("white")
    else:
        print("black")
    
    def f(x):
        if np.abs(p - 0.5) < 1e-6:
            return 0
        elif x > 0.5:
            return 1
        else:
            return 2
    
    print([f(a) for a in list(x)])


main()
