#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;
}