#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3")
int t, h[2000010], v[2000010 * 2], nxt[2000010 * 2], ec, in[2000010], n, a, b;
char s[2000010];
void add(int x, int y) {
  v[++ec] = y;
  in[y]++;
  nxt[ec] = h[x];
  h[x] = ec;
}
void adj(int x, int y) {
  add(x, y);
  add(y, x);
}
int main() {
  scanf("%d", &t);
  while (t--) {
    scanf("%d", &n);
    ec = 0;
    memset(h, 0, sizeof(int) * (n + 5));
    memset(in, 0, sizeof(int) * (n + 5));
    for (int i = 1; i < n; i++) {
      scanf("%d%d", &a, &b);
      adj(a, b);
    }
    scanf("%s", s + 1);
    if (n < 3) {
      printf("Draw\n");
      continue;
    }
    if (n == 3) {
      int c = 0;
      for (int i = 1; i <= n; i++)
        if (s[i] == 'W') c++;
      if (c >= 2)
        printf("White\n");
      else
        printf("Draw\n");
      continue;
    }
    int ct = 0, r = 0, on = n;
    for (int i = 1; i <= on; i++)
      if (s[i] == 'W') {
        add(i, ++n);
        h[n] = 0;
        add(n, i);
        in[n] = 3;
      }
    for (int i = 1; i <= n; i++) {
      if (in[i] > 3)
        r = 1;
      else if (in[i] == 3) {
        ct++;
        int cc = 0;
        for (int j = h[i]; j; j = nxt[j])
          if (in[v[j]] >= 2) cc++;
        r |= cc >= 2;
      }
    }
    if (ct == 2 && (n & 1)) r = 1;
    printf(r ? "White\n" : "Draw\n");
  }
}
