import java.util.Stack;

import javax.swing.JOptionPane;

/**
 * @author mitsunoriogihara
 *
 */
public class ParenChecking {

	static char[] forward = {'(', '[', '{', '<'};
	static char[] backward = {')', ']', '}', '>'};
	
	
	static boolean isForward(char c) {
		for (int i=0; i<forward.length; i++) {
			if (c==forward[i]) return true;
		}
		return false;
	}
	static boolean isBackward(char c) {
		for (int i=0; i<backward.length; i++) {
			if (c==backward[i]) return true;
		}
		return false;
	}

	static int getIndex(char c) {
		for (int i=0; i<forward.length; i++) {
			if (c==forward[i]) return i;
		}
		for (int i=0; i<backward.length; i++) {
			if (c==backward[i]) return i;
		}
		return -1;

	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		while (true) {
			String s = JOptionPane.showInputDialog("Type an input");
			if (s.length()==0) break;
			Stack<Integer> iStack = new Stack<Integer>();
			boolean f = true;
			for (int i=0; i<s.length(); i++) {
				if (isForward(s.charAt(i))) {
					iStack.push(getIndex(s.charAt(i)));
				}
				else if (isBackward(s.charAt(i))) {
					if (iStack.isEmpty()) {
						f = false;
						break;
					}
					else {
						if (iStack.pop()!=getIndex(s.charAt(i))) {
							f = false;
							break;
						}
					}
				}
			}
			if (!iStack.isEmpty()) f = false;
			if (f) {
				JOptionPane.showMessageDialog(null, s + " is balanaced");
			}
			else {
				JOptionPane.showMessageDialog(null, s + " is not balanced");
			}
		}
	}

}
