Under construction

Still being built. Things may change

Brackets

Time limit1sMemory limit128 MB

Summary
For each line of code until the '#' line, decide whether its round, square, and curly brackets are matched and correctly nested.
Level

Easy3 of 10

Topics
Stack, String
Solved
No attempts yet

Problem

If you have programmed in C or Java, you are used to dealing with brackets. In this problem we consider three kinds of brackets: round (), square [], and curly {}. Every opening bracket must have a matching closing bracket, and the brackets must be correctly nested.

You are given several pieces of code. For each piece, decide whether its brackets are legal or not. To keep things simple, assume that no bracket is enclosed in quotes. Newline characters have also been removed, so each line of input represents one piece of code to be checked.

Input

The input consists of several lines of text (code), each containing at most 250 characters. The last line of input contains only a single #, and this line must be ignored. For every line before the # line, check whether its brackets are legal and report the result.

Output

For each piece of code, if it contains no brackets, or if all brackets are correctly paired and nested, print Legal on its own line. If there is any error, print Illegal on its own line.

Examples1

  1. Example 1

    Input
    void test(int num) { num = double(num); }
    int count(int value) { return (value + 2; }
    while(sum < 200) { sum += data[test(sum]); }
    #
    
    Expected output
    Legal
    Illegal
    Illegal