#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <math.h>
#include <assert.h>
#include <vector>
#include <queue>
#include <string>
#include <map>
#include <set>

using namespace std;
typedef long long ll;
typedef unsigned int uint;
typedef unsigned long long ull;
static const double EPS = 1e-9;
static const double PI = acos(-1.0);

#define REP(i, n) for (int i = 0; i < (int)(n); i++)
#define FOR(i, s, n) for (int i = (s); i < (int)(n); i++)
#define FOREQ(i, s, n) for (int i = (s); i <= (int)(n); i++)
#define FORIT(it, c) for (__typeof((c).begin())it = (c).begin(); it != (c).end(); it++)
#define MEMSET(v, h) memset((v), h, sizeof(v))

int matrix[2][510][510];
int ok[2][510][510];
int cnt[2];
int card[100010];
int px[2][1000010];
int py[2][1000010];
int n, u, v, m;

int Check(int iter, int sx, int sy, int dx, int dy) {
  int sum = 0;
  REP(i, n) {
    sum += ok[iter][sy + dy * i][sx + dx * i];
  }
  return sum == n;
}

int main() {
  while (scanf("%d %d %d %d", &n, &u, &v, &m) > 0) {
    MEMSET(px, -1);
    MEMSET(py, -1);
    MEMSET(cnt, 0);
    MEMSET(ok, 0);
    REP(iter, 2) {
      REP(y, n) {
        REP(x, n) {
          scanf("%d", &matrix[iter][y][x]);
          px[iter][matrix[iter][y][x]] = x;
          py[iter][matrix[iter][y][x]] = y;
        }
      }
    }
    REP(i, m) {
      scanf("%d", &card[i]);
    }
    if (n == 1) {
      REP(i, m) {
        REP(iter, 2) {
          if (matrix[iter][0][0] == card[i]) {
            cnt[iter]++;
          }
        }
        if (cnt[0] >= u || cnt[1] >= v) { goto end; }
      }
    } else {
      REP(i, m) {
        int c = card[i];
        REP(iter, 2) {
          int tx = px[iter][c];
          int ty = py[iter][c];
          if (tx == -1) { continue; }
          ok[iter][ty][tx] = 1;
          cnt[iter] += Check(iter, tx, 0, 0, 1);
          cnt[iter] += Check(iter, 0, ty, 1, 0);
          if (tx == ty) {
            cnt[iter] += Check(iter, 0, 0, 1, 1);
          }
          if (tx == n - ty - 1) {
            cnt[iter] += Check(iter, n - 1, 0, -1, 1);
          }
        }
        if (cnt[0] >= u || cnt[1] >= v) { goto end; }
      }
    }
end:
    if (cnt[0] >= u && cnt[1] >= v) {
      puts("DRAW");
    } else if (cnt[0] >= u) {
      puts("USAGI");
    } else if (cnt[1] >= v) {
      puts("NEKO");
    } else {
      puts("DRAW");
    }
  }
}