#include <bits/stdc++.h>
using namespace std;
int begin1[3000010], to1[3000010], next1[3000010], e, vis[3000010], a[3000010];
char s[1000010];
void add(int x, int y) {
  to1[++e] = y;
  next1[e] = begin1[x];
  begin1[x] = e;
}
int main() {
  int t, u, v, i, j, n, flagb = 0;
  scanf("%d", &t);
  int tot = 0;
  while (t--) {
    scanf("%d", &n);
    e = 0;
    tot++;
    int maxv = 0;
    for (i = 1; i < n; i++) {
      scanf("%d%d", &u, &v);
      add(u, v);
      add(v, u);
      vis[u]++;
      vis[v]++;
      maxv = max(maxv, vis[u]);
      maxv = max(maxv, vis[v]);
    }
    scanf("%s", s);
    int cnt = 0;
    for (i = 1; i <= n; i++)
      if (s[i - 1] == 'W') {
        a[i] = 1;
        n++;
        add(i, n);
        vis[i]++;
        vis[n] = 1;
        n++;
        add(n - 1, n);
        vis[n - 1]++;
        vis[n] = 1;
        n++;
        add(n - 2, n);
        vis[n - 2]++;
        vis[n] = 1;
        maxv = max(maxv, vis[i]);
      } else
        a[i] = 0;
    if (maxv >= 4) {
      for (i = 1; i <= n; i++) begin1[i] = vis[i] = 0;
      printf("White\n");
      continue;
    }
    int flag = 0;
    for (i = 1; i <= n; i++)
      if (vis[i] == 3) {
        int sum = 0;
        for (j = begin1[i]; j; j = next1[j])
          if (vis[to1[j]] != 1) sum++;
        if (sum >= 2) {
          flag = 1;
          break;
        }
      }
    if (flag) {
      printf("White\n");
      for (i = 1; i <= n; i++) begin1[i] = vis[i] = 0;
      continue;
    }
    int sum1 = 0;
    for (i = 1; i <= n; i++)
      if (vis[i] == 3) sum1++;
    if (sum1 >= 2)
      if (n & 1) {
        for (i = 1; i <= n; i++) begin1[i] = vis[i] = 0;
        printf("White\n");
        continue;
      }
    for (i = 1; i <= n; i++) begin1[i] = vis[i] = 0;
    printf("Draw\n");
  }
}
