#include "bits/stdc++.h"
#pragma warning(disable:4996)
using namespace std;

const int My_Inf=2147483647;
const long long int My_LInf=9223372036854775807;

int N, U, V, M;
struct bingo {
	map<int, int>wmp;
	map<int, int>hmp;
	set<int>slant00mp;
	set<int>slant0nmp;
	vector<int>wnum;
	vector<int>hnum;
	int slant00num;
	int slant0nnum;
	int ans;
	int need;
	bingo(int n,int need_):wnum(n),hnum(n){
		need = need_;
		slant00num = 0;
		slant0nnum=0;
		ans = 0;
	}
	bool fill(int a) {
		if (wmp.count(a)) {
			wnum[wmp[a]]++;
			if (wnum[wmp[a]] == N)ans++;
		}
		if (hmp.count(a)) {
			hnum[hmp[a]]++;
			if (hnum[hmp[a]] == N)ans++;
		}
		if (slant00mp.count(a)) {
			slant00num++;
			if (slant00num == N)ans++;
		}
		if (slant0nmp.count(a)) {
			slant0nnum++;
			if (slant0nnum == N)ans++;
		}
		if (N == 1)ans = min(ans, 1);
		return need <= ans;
	}
};
int main() {cin >> N >> U >> V >> M;
	vector<bingo>bingos;
	bingos.push_back(bingo(N, U));
	bingos.push_back(bingo(N, V));
	for (int k = 0; k < 2; ++k) {
		for (int i = 0; i < N; ++i) {
			for (int j = 0; j < N; ++j) {
				int a; cin >> a;
				bingos[k].wmp[a] = i;
				bingos[k].hmp[a] = j;
				if (i == j)bingos[k].slant00mp.emplace(a);
				if (i + j == N - 1)bingos[k].slant0nmp.emplace(a);
			}
		}
	}
	while (M--) {
		int a; cin >> a;
		if (bingos[0].fill(a)) {
			if (bingos[1].fill(a)) {
				cout << "DRAW" << endl;
				return 0;
			}
			else {
				cout << "USAGI" << endl;
				return 0;
			}
		}
		else {
			if (bingos[1].fill(a)) {
				cout << "NEKO" << endl;
				return 0;
			}
			else {
				
			}
		}
	}
	cout << "DRAW" << endl;
	return 0;
}