#include <iostream>
#include <stack>
using namespace std;
//本题主要考察栈的配对使用,这也是栈最常见的用途
//tips:不要忘记头文件<stack>,依然不推荐任何人使用万能头,包括新手

stack<char> ss;//定义一个栈
int main() {
    string a;//定义题目要求的字符串
    cin>>a;
    int k{};//真值判断器,此处定义0真1假

    for(int i=0;i<a.size();i++)//遍历字符串中的每一个字符
    {
	  //记住顺序是从左往右入栈,这很关键
        if(a[i]=='a')//如果遇到a就入栈
        {
            ss.push(a[i]);
        }
        else if(ss.empty()&&a[i]=='b')//如果在空栈遇到b,令k为假并退出循环
        {
            k=1;
            break;
        }
        else if(!ss.empty()&&a[i]=='b')//如果遇到a、b匹配就消除,即出栈
        {
            ss.pop();
        }
        else {//其他情况都是假值,逆向思维,只有匹配的情况才会是真值
        k=1;
        break;
        }
    } 

    if(!ss.empty())
    k=1;//如果栈不空,肯定有没配对的a在栈内,假值

    if(k==0)
    cout<<"Good";//输出内容判断
    else
    cout<<"Bad";

    return 0;
}
// 64 位输出请用 printf("%lld")