#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")