#include "stdafx.h"
#include <iostream>
#include <queue>
#include <string>
using namespace std;
#define MAX_SIZE 100
bool graph[MAX_SIZE][MAX_SIZE];
int node_color[MAX_SIZE];
int vertex;
int edge;
bool BFS( int is_bad_guy ){
queue< int > bad_guy_family;
bad_guy_family.push( is_bad_guy );
node_color[is_bad_guy] = 1;
while( !bad_guy_family.empty() ){
int heir_of_bad_guy = bad_guy_family.front();
bad_guy_family.pop();
for( int good_boy_index = 1; good_boy_index <= vertex; ++good_boy_index ){
if( graph[heir_of_bad_guy][good_boy_index] && node_color[good_boy_index] == -1 ){
bad_guy_family.push( good_boy_index );
node_color[good_boy_index] = 1 - node_color[heir_of_bad_guy];
}
if( graph[heir_of_bad_guy][good_boy_index] &&
node_color[good_boy_index] == node_color[heir_of_bad_guy] )
return false;
}
}
return true;
}
int _tmain(int argc, _TCHAR* argv[]){
memset( graph, false, sizeof( graph ) );
memset( node_color, -1, sizeof( node_color ) );
bool good_boy = true;
int start, end;
cin >> vertex >> edge;
for( int i = 1; i <= edge; ++i ){
cin >> start >> end;
graph[start][end] = true;
}
for( int i = 1; i <= vertex; ++i ){
if( node_color[i] == -1 ){
bool nice = BFS( i );
if( !nice ){
good_boy = false;
break;
}
}
}
if( good_boy )
cout<<"Good_Boy"<<endl;
else
cout<<"Bad_Boy"<<endl;
return 0;
}