#include <bits/stdc++.h>
using namespace std;
vector<int> edges[500000];
char str[500000 + 1];
int main() {
  int T, N;
  scanf("%d", &T);
  while (T--) {
    scanf("%d", &N);
    for (int i = int(0); i < int(N); i++) edges[i].clear();
    for (int i = int(1); i < int(N); i++) {
      int u, v;
      scanf("%d %d", &u, &v);
      u--, v--;
      edges[u].push_back(v);
      edges[v].push_back(u);
    }
    scanf("%s", str);
    bool whiteWins = false;
    int tc = 0;
    for (int i = int(0); i < int(N); i++) {
      if (edges[i].size() >= 4)
        whiteWins = true;
      else if (edges[i].size() == 3) {
        int b2c = 0, wc = str[i] == 'W';
        tc++;
        for (int j = int(0); j < int(edges[i].size()); j++) {
          int next = edges[i][j];
          if (str[next] == 'W') wc++;
          if (edges[next].size() >= 2) b2c++;
        }
        if (b2c >= 2 || wc >= 1) whiteWins = true;
      } else if (edges[i].size() == 2) {
        if (str[i] == 'W' && N >= 4) whiteWins = true;
      }
    }
    int wc = 0;
    for (int i = int(0); i < int(N); i++) wc += str[i] == 'W';
    if (wc >= 2 && N >= 3) {
      if (N & 1) whiteWins = true;
    }
    if (wc && tc) {
      if (N % 2 == 0) whiteWins = true;
    }
    if (tc >= 2)
      if (N & 1) whiteWins = true;
    if (whiteWins)
      printf("White\n");
    else
      printf("Draw\n");
  }
  return 0;
}
