#include <bits/stdc++.h>
using namespace std;
using big = long long;
const int N = 200200;
int a[N];
int f[N][2][2][2][2];
int dfs(int n, int x, int y, int v1, int v2) {
  if (!n) {
    assert(!x && !y);
    return v1 > v2;
  }
  if (x && !dfs(n - 1, x - 1, y, v2, !v1)) {
    return true;
  }
  if (y && !dfs(n - 1, x, y - 1, v2, v1)) {
    return true;
  }
  return false;
}
vector<int> to_vec(int x, int y) { return {x % 4, y % 4}; }
map<vector<int>, int> init() {
  map<vector<int>, int> g;
  vector<vector<int>> ans;
  for (int n = 1; n <= 16; ++n) {
    for (int x = 1; x <= n; x += 2) {
      int y = n - x;
      int res = dfs(n, x, y, 0, 0);
      if (g.count(to_vec(x, y)) && g[to_vec(x, y)] != res) {
        cerr << " ERRRR  " << endl;
      }
      assert(!g.count(to_vec(x, y)) || g[to_vec(x, y)] == res);
      g[to_vec(x, y)] = res;
      ans.push_back({x, y, res});
    }
  }
  return g;
}
int main() {
  ios_base::sync_with_stdio(false);
  auto g = init();
  int cas;
  cin >> cas;
  memset(f, -1, sizeof(f));
  while (cas--) {
    int n;
    cin >> n;
    int s = 0;
    for (int i = 0; i < n; ++i) {
      cin >> a[i];
      s ^= a[i];
    }
    int highest = 0;
    for (int i = 0; (1ll << i) <= s; ++i) {
      highest = i;
    }
    int cnt = 0;
    for (int i = 0; i < n; ++i) {
      if (a[i] >> highest & 1) {
        ++cnt;
      }
    }
    int other = n - cnt;
    if (!s) {
      cout << "DRAW"
           << "\n";
    } else {
      assert(cnt & 1);
      if (g[to_vec(cnt, other)]) {
        cout << "WIN"
             << "\n";
      } else {
        cout << "LOSE"
             << "\n";
      }
    }
  }
  return 0;
}
