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