#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;
    int Stack(&stack);
    for(int i=0;str[i]!='\0';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");
    else
    printf("Not Balanced");
    return 0;
}