#include<iostream>
#include<string>
#include<set>
#include<map>
#include<algorithm>
#define DWAW "Draw"

using namespace std;

void MakeAllMapData(map< string, set<string> >* data);
set<string> MakeSetData(const string&, const string&, const string&, const string&,
			const string&, const string&, const string&);
string RockScissorsPaper(set<string>, map< string, set<string> >);

int main(){
  int i, n;
  string str;
  set<string> form;
  map< string, set<string> > data;

  MakeAllMapData(&data);

  while(1){
    cin >> n;
    if(n == 0) break;

    for(i=0; i<n; ++i){
      cin >> str;
      if(form.find(str) == form.end()) form.insert(str);
    }
    cout << RockScissorsPaper(form, data) << endl;
    form.clear();
  }
  return 0;
}

void MakeAllMapData(map< string, set<string> >* data){
  const string rock("Rock");
  const string fire("Fire");
  const string scissors("Scissors");
  const string snake("Snake");
  const string human("Human");
  const string tree("Tree");
  const string wolf("Wolf");
  const string sponge("Sponge");
  const string paper("Paper");
  const string air("Air");
  const string water("Water");
  const string dragon("Dragon");
  const string devil("Devil");
  const string lightning("Lightning");
  const string gun("Gun");

  data->insert(make_pair(rock, MakeSetData(fire, scissors, snake, human, tree, wolf, sponge)));
  data->insert(make_pair(fire, MakeSetData(scissors, snake, human, tree, wolf, sponge, paper)));
  data->insert(make_pair(scissors, MakeSetData(snake, human, tree, wolf, sponge, paper, air)));
  data->insert(make_pair(snake, MakeSetData(human, tree, wolf, sponge, paper, air, water)));
  data->insert(make_pair(human, MakeSetData(tree, wolf, sponge, paper, air, water, dragon)));
  data->insert(make_pair(tree, MakeSetData(wolf, sponge, paper, air, water, dragon, devil)));
  data->insert(make_pair(wolf, MakeSetData(sponge, paper, air, water, dragon, devil, lightning)));
  data->insert(make_pair(sponge, MakeSetData(paper, air, water, dragon, devil, lightning, gun)));
  data->insert(make_pair(paper, MakeSetData(air, water, dragon, devil, lightning, gun, rock)));
  data->insert(make_pair(air, MakeSetData(water, dragon, devil, lightning, gun, rock, fire)));
  data->insert(make_pair(water, MakeSetData(dragon, devil, lightning, gun, rock, fire, scissors)));
  data->insert(make_pair(dragon, MakeSetData(devil, lightning, gun, rock, fire, scissors, snake)));
  data->insert(make_pair(devil, MakeSetData(lightning, gun, rock, fire, scissors, snake, human)));
  data->insert(make_pair(lightning, MakeSetData(gun, rock, fire, scissors, snake, human, tree)));
  data->insert(make_pair(gun, MakeSetData(rock, fire, scissors, snake, human, tree, wolf)));
}

set<string> MakeSetData(const string& a, const string& b, const string& c, const string& d,
			const string& e, const string& f, const string& g){
  set<string> data;
  data.insert(a);
  data.insert(b);
  data.insert(c);
  data.insert(d);
  data.insert(e);
  data.insert(f);
  data.insert(g);
  return data;
}

string RockScissorsPaper(set<string> form, map< string, set<string> > data){
  if(form.size() == 1) return DWAW;
  int a;
  set<string>::iterator i, j;
  map< string, set<string> >::iterator k;
  for(i=form.begin(); i!=form.end(); ++i){
    k = data.find(*i);
    for(j=form.begin(), a=1; j!=form.end(); ++j){
      if(*i == *j) continue;
      if(k->second.find(*j) == k->second.end()){
	a = 0;
	break;
      }
    }
    if(a == 1) return *i;
  }
  return DWAW;
}

Measured memory_bytes: 1240