#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define MAX 100000

char *stack[MAX];
int top=-1;

void push(char *s){ stack[++top] = strcmp(s); }
char* pop(){ if(top==-1) return NULL; return stack[top--]; }

int isValidName(char *s){
    for(int i=0;s[i];i++) if(!islower(s[i])) return 0;
    return 1;
}

char* check(char *line){
    int n=strlen(line);
    top=-1;
    for(int i=0;i<n;i++){
        if(line[i]=='<'){
            int j=i+1;
            while(j<n && line[j]!='>') j++;
            if(j==n) return "Invalid input";
            int len=j-i-1;
            if(len<=0) return "Invalid input";
            char tag[100005]; strncpy(tag,line+i+1,len); tag[len]='\0';
            if(tag[0]=='/'){
                char *name=tag+1;
                if(!isValidName(name)) return "Invalid input";
                char *op=pop();
                if(op==NULL || strcmp(op,name)!=0) return "Unbalanced";
                free(op);
            } else {
                if(!isValidName(tag)) return "Invalid input";
                push(tag);
            }
            i=j;
        }
    }
    if(top==-1) return "Balanced";
    return "Unbalanced";
}

int main(){
    int n;
    scanf("%d\n",&n);
    char line[MAX+5];
    for(int i=0;i<n;i++){
        if(!fgets(line,sizeof(line),stdin)) break;
        line[strcspn(line,"\n")]=0;
        printf("%s\n",check(line));
    }
    return 0;
}