C나 Java로 프로그래밍을 해 봤다면 괄호를 다루는 데 익숙할 것입니다. 이 문제에서는 소괄호 (), 대괄호 [], 중괄호 {} 세 종류의 괄호를 다룹니다. 모든 여는 괄호에는 그에 대응하는 닫는 괄호가 있어야 하며, 괄호는 올바르게 중첩되어 있어야 합니다.
여러 개의 코드 조각이 주어집니다. 각 코드 조각의 괄호가 올바른지 판별하세요. 문제를 단순하게 하기 위해, 따옴표 안에 들어 있는 괄호는 없다고 가정합니다. 또한 줄바꿈 문자는 모두 제거되어 있으므로, 입력의 한 줄이 검사해야 할 하나의 코드 조각을 나타냅니다.
입력은 여러 줄의 텍스트(코드)로 이루어지며, 각 줄의 길이는 250자를 넘지 않습니다. 입력의 마지막 줄은 # 한 글자로만 이루어져 있으며, 이 줄은 무시합니다. # 줄 이전의 각 줄에 대해 괄호가 올바른지 검사하여 그 결과를 출력해야 합니다.
각 코드 조각에 대해, 괄호가 하나도 없거나 모든 괄호가 올바르게 짝지어지고 중첩되어 있으면 한 줄에 Legal을 출력합니다. 오류가 있으면 한 줄에 Illegal을 출력합니다.