#include<iostream>
#include<vector>
#include<map>
using namespace std;
#define REP(i,b,n) for(int i=b;i<n;i++)
#define rep(i,n)   REP(i,0,n)
const int N = 500;
class st{
public:
  int n,hit;    
  int rc[N],cc[N];//rowÆcolÅµÁÄ¢ézÌB
  int n1,n2;//Îßn1 i==j,n2 i+j == n-1
  map<int,pair<int,int> > M;
  st(){}
  st(int tn,int thit):n(tn),hit(thit),n1(tn),n2(tn){
    M.clear();
    rep(i,n){
      rc[i] = n;
      cc[i] = n;
    }
  }
  void set(){
    rep(i,n){
      rep(j,n){
	int tmp;cin>>tmp;M[tmp] = make_pair(i,j);
      }
    }
  }
  bool isend(int val){//hitsÈãÌf[^ªµÁ½©ð»è·éB
    if (M.count(val) == 0)return false;
    int y = M[val].first,x = M[val].second;
    rc[y]--;
    cc[x]--;
    if (y == x)n1--;
    if (y+x == n-1)n2--;


    if (rc[y] == 0)hit--;
    if (n != 1){//n !=1 ÌÈOÌ
      if (cc[x] == 0)hit--;//esÉÂ¢Ä²×é
      if (n1 == 0)hit--,n1--;//Îßð²×é
      if (n2 == 0)hit--,n2--;//Îßð²×é
    }
    
    return hit <= 0;
  }
  void debug(){
    cout <<"debug----------------------------" << endl;
    cout <<"hit " << hit << endl;
    cout <<"n1 " << n1 << endl;
    cout <<"n2 " << n2 << endl;
    rep(i,n)cout <<" " << cc[i];cout << endl;
    rep(i,n){
      cout << rc[i] << endl;
    }
    cout << endl;
  }

};


int main(){
  int n,u,v,m;
  while(cin>>n>>u>>v>>m && n){
    st usagi(n,u),neko(n,v);
    usagi.set();
    neko.set();
    vector<int> in(m);
    rep(i,m){cin>>in[i];}
    rep(i,m){
      bool ur = usagi.isend(in[i]),nr = neko.isend(in[i]);
      //usagi.debug();
      //neko.debug();
      if (ur && nr){
	cout <<"DRAW"<<endl;
	goto end;
      }else if (ur){
	cout <<"USAGI" << endl;
	goto end;
      }else if (nr){
	cout <<"NEKO"<<endl;
	goto end;
      }
    }
    //cout <<"hogehoge" << endl;
    cout <<"DRAW"<<endl;
  end:;
  }
}