using System; using System.Collections.Generic; namespace Balanced_Parentheses { class Program { static void Main(string[] args) { var input = Console.ReadLine().ToCharArray(); if (input.Length % 2 == 1) { Console.WriteLine("NO"); return; } var stack = new Stack(); foreach (var c in input) { switch (c) { case '(': case '{': case '[': stack.Push(c); break; default: if ((c == '}' || c==']' || c == ')') && stack.Count > 0) { if (stack.Peek() == '(' && c == ')' || stack.Peek() == '[' && c == ']' || stack.Peek() == '{' && c == '}') { stack.Pop(); } else { Console.WriteLine("NO"); return; } } else { Console.WriteLine("NO"); return; } break; } } Console.WriteLine("YES"); } } }