#include using namespace std; using ll=long long; using ld=long double; using ii=pair; #define FOR(i, a,b) for(ll i=a;i<(ll)b; i++) #define F(N) FOR(i, 0, N) #define FF(N) FOR(j, 0, N) #define aa first #define bb second #define PB push_back double wh[8][8][8][8]; double bl[8][8][8][8]; int wx, wy, bx, by; vector mvs = {{2, 1}, {2, -1}, {-2, 1}, {-2, -1}, {1, 2}, {1, -2}, {-1, 2}, {-1, -2}}; int main() { scanf("%d%d%d%d", &wx, &wy, &bx, &by); wx--; wy--; bx--; by--; double wv = 0, bv = 0, rem = 1; wh[wx][wy][bx][by] = 1; bool wtu = 0; while (rem > 1e-6) { wtu = !wtu; rem = 0; if (wtu) { F(8) FF(8) FOR(k, 0, 8) FOR(l, 0, 8) bl[i][j][k][l] = 0; } else { F(8) FF(8) FOR(k, 0, 8) FOR(l, 0, 8) wh[i][j][k][l] = 0; } F(8) FF(8) { vector emvs; for (auto mv : mvs) { int nx = i + mv.aa, ny = j + mv.bb; if (nx < 0 || nx > 7 || ny < 0 || ny > 7) continue; emvs.PB(mv); } FOR(k, 0, 8) FOR(l, 0, 8) { if (wtu) { double cur = wh[i][j][k][l]; double chnc = cur / emvs.size(); for (auto mv : emvs) { int nx = i + mv.aa, ny = j + mv.bb; if (nx == k && ny == l) { wv += chnc; } else { bl[nx][ny][k][l] += chnc; rem += chnc; } } } else { double cur = bl[k][l][i][j]; double chnc = cur / emvs.size(); for (auto mv : emvs) { int nx = i + mv.aa, ny = j + mv.bb; if (nx == k && ny == l) { bv += chnc; } else { wh[k][l][nx][ny] += chnc; rem += chnc; } } } } } // printf("%lf %lf %lf\n", rem, wv, bv); } if (fabs(wv - bv) < 1e-6) { printf("draw\n"); } else if (wv > bv) { printf("white\n"); } else { printf("black\n"); } return 0; }