using System.Collections;
using System.Collections.Generic;
static Dictionary<char,char> bracketPairs= new Dictionary<char,char>(){{'{','}'},{'[',']'},{'(',')'},{'<','>'}};
public static void Main()
Console.WriteLine( IsBalanced() ? "YES" : "NO" );
public static bool IsBalanced(){
string expression = Console.ReadLine();
var charArray=expression.ToCharArray();
var stackBrackets=new Stack<char>();
foreach(var p in charArray)
if(bracketPairs.ContainsKey(p))
else if(bracketPairs.ContainsValue(p) && stackBrackets.Any()){
var openingBracket=stackBrackets.Pop();
if(bracketPairs[openingBracket] != p)
return !stackBrackets.Any();