0000000000000#include<stdio.h>
#define MAX 100
typedef struct{
    char items[MAX];
    int top;
}Stack;
void initStack(Stack*s){s->top=-1;}
int isEmpty(Stack*s){return s->top==-1;}
void push(Stack*s,char c){s->items[++(s->top)]=c;}
char pop(Stack*s){return s->items[(s->top)--];}

int match(char open, char close){
    return(open =='('&& close ==')')||
        (open =='{'&& close =='}')||
        (open =='['&& close ==']');
}
int isBalanced(char*str){
    Stack stack;initStack(&stack);
    for(int i=0;str[i];i++){
        if(str[i]=='('||str[i]=='{'||str[i]=='[')push(&stack,str[i]);
        else if(str[i]==')'||str[i]=='}'||str[i]==']'){
            if(isEmpty(&stack)|| !match(pop(&stack),str[i]))return 0;
        }
    }
    return isEmpty(&stack);
}
int main(){
    char str[101];
    fgets(str,sizeof(str),stdin);
    if(isBalanced(str))
        printf("Balanced\n");
    else
        printf("Not Balanced\n");
    return 0;
}
