/************************************************
Algorithmen und Problemloesungen mit C++,
http://www.algorithmen-und-problemloesungen.de
Copyright @2006-2007, Doina Logofatu
************************************************/

#include <fstream>

using namespace std;
int m, a[100], x[30];     
long int n1, n2;
ifstream fin("oliven.in");
ofstream fout("oliven.out");

void addLine(int k, int& nr, int b[400][15]){ 
  int i, t=1, aux[30];;
  for(i=1; i<k; i++)
    if(1==x[i]) 
      aux[t++]=a[i-1];
  b[nr][0]=t-1;
  for(i=1; i<=b[nr][0]; i++) b[nr][i]=aux[i];
  nr++;
}

void back(long int n, int k, int &nr, int b[400][15]){
  int i, j;
  long int p = 1;
  for(j=1; j<k; j++) if(x[j])p*=a[j-1];
  if(p==n) addLine(k,nr,b);
  else 
    if(k<=m)
      for(i=0;i<2;i++){
        x[k]=i;
        if(!i) back(n,k+1,nr,b);
        else 
          if(0==(n/p)%a[k-1]){		  
            x[k]=1;
            if(1==(n/p)/a[k-1] || (n/p)/a[k-1]>a[k-1]) 
              back(n, k+1, nr, b);
          }
     }
}

void divVect(long int n, int a[30], int &m){
  int i;
  m=0;
  for(i=2; i<=100; i++)
    if(0==n%i)
      a[m++]=i;
}

void buildMatrix(long int n, int& nr, int b[400][15]){
  divVect(n,a,m);
  back(n,1,nr,b);
}

int disjointLines(int lb, int lc, int b[400][15], 
                  int c[400][15]){
    int i, j;
    for(i=1; i<=b[lb][0]; i++)
      for(j=1; j<=c[lc][0]; j++)
        if(b[lb][i]==c[lc][j]) return 0;
    return 1;
}

int disjointPoints(int nr1, int b[400][15], int nr2, 
  int c[400][15]){
    int i, j;
    for(i=0; i<nr1; i++)
      for(j=0; j<nr2; j++)
        if(disjointLines(i,j,b,c)) return 1;
    return 0;
}

void makeDecision(int nr1, int b[400][15], int nr2, 
  int  c[400][15]){
    if(!nr1 && !nr2) 
      fout << "Beide luegen! Unentschieden!" << endl;                
    else if(!nr1)
      fout << "Der Erste luegt! Der Zweite gewinnt!" << endl;
    else if(!nr2) 	
      fout << "Der Zweite luegt! Der Erste gewinnt!" << endl;
    else   
      if(n1<n2)
        if(disjointPoints(nr1, b, nr2, c)) 		
          fout << "Der zweite Spieler gewinnt!" << endl;
        else 
          fout << "Der erste Spieler gewinnt!" << endl;
      else
        if(disjointPoints(nr2,c,nr1,b))
          fout << "Der erste Spieler gewinnt!" << endl;
        else 		
          fout << "Der zweite Spieler gewinnt!" << endl;
}

int main(){
  int nr1, nr2;
  int b[400][15], c[400][15];
  while(fin && !fin.eof() && fin>>n1>>n2){
    nr1=0;  
    nr2=0;
    buildMatrix(n1, nr1, b);
    buildMatrix(n2, nr2, c);  
    makeDecision(nr1, b, nr2, c);
  };  
  return 0;
}


