#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#define MAX_SIZE 100000
//将ab两个符号看成是括号的左边和右边,a为左,b为右,原理与括号匹配一致
//链式栈
typedef struct Node
{
    char data;
    struct Node* next;
}Node;

typedef struct 
{
    Node* top;
} LinkedStack;

//初始化链式栈
void initLinkedStack(LinkedStack* stack)
{
    stack->top = NULL;
}

//检查栈是否为空
bool isEmpty(LinkedStack* stack)
{
    return stack->top == NULL;
}

//入栈操作
void push(LinkedStack* stack, char data)
{
    Node* newNode = (Node*)malloc(sizeof(Node));
    if(newNode == NULL)
    {
        printf("newNode create falied\n");
        return;
    }
    newNode->data = data;
    newNode->next = stack->top;
    stack->top = newNode;
}

//出栈操作
void pop(LinkedStack* stack)
{
    //先判断栈是否为空
    if(isEmpty(stack))
    {
        printf("Stack is Empty\n");
        return;
    }
    Node* temp = stack->top;
    char data = temp->data;
    stack->top = temp->next;
    free(temp);
}

//获取栈顶元素
char peek(LinkedStack* stack)
{
    if(isEmpty(stack))
    {
        printf("Stack is Empty\n");
        return 1;
    }
    return stack->top->data;
}

//释放栈内存
void freeStack(LinkedStack* stack)
{
    while(!isEmpty(stack))
    {
        pop(stack);
    }
}

bool isGoodString(char* s)
{
    LinkedStack stack;
    initLinkedStack(&stack);

    for(int i = 0; s[i] != '\0'; i++)
    {
        if(s[i] == 'a')
        {
            push(&stack, s[i]);
        }
        else
        {
            if(isEmpty(&stack))
            {
                return false;
            }

            char temp = peek(&stack);
            if(s[i] == 'b' && temp != 'a')
            {
                return false;
            }

            pop(&stack);
        }
    }
    return isEmpty(&stack);
}

int main()
{
    LinkedStack stack;
    LinkedStack* stack_ptr = &stack;
    initLinkedStack(stack_ptr);
    char data[MAX_SIZE] = {'\0'};
    scanf("%s",data);
    getchar();

    if(isGoodString(data))
    {
        printf("Good\n");
    }
    else
    {
        printf("Bad\n");
    }

    freeStack(stack_ptr);

    return 0;
}