Problem:
Score : 200 points

Problem Statement

You are given two positive integers A and B. Compare the magnitudes of these numbers.

Constraints

1 ≤ A, B ≤ 10^{100}

Neither A nor B begins with a 0.

Input

Input is given from Standard Input in the following format:

A
B

Output

Print GREATER if A>B, LESS if A<B and EQUAL if A=B.

Sample Input 1

36
24

Sample Output 1

GREATER

Since 36>24, print GREATER.

Sample Input 2

850
3777

Sample Output 2

LESS

Sample Input 3

9720246
22516266

Sample Output 3

LESS

Sample Input 4

123456789012345678901234567890
234567890123456789012345678901

Sample Output 4

LESS

Solution in Rust (1.15.1) (judge verdict: Accepted)

use std::str::FromStr;

fn get_one<T : FromStr>() -> T {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    return s.trim().parse().ok().unwrap();
}

fn get_vec<T : FromStr>() -> Vec<T> {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok();
    return s.trim().split_whitespace().map(|e| e.parse().ok().unwrap()).collect();
}

fn main() {
    let s : String = get_one();
    let t : String = get_one();

    let ss : Vec<char> = s.chars().rev().collect();
    let tt : Vec<char> = t.chars().rev().collect();

    if ss.len() > tt.len() {
        println!("{}", "GREATER");
    }
    else if ss.len() < tt.len() {
        println!("{}", "LESS");
    }
    else {
        let n = std::cmp::min(ss.len(), tt.len());
        let mut prev_greater = 0;
        for i in 0..n {
            if ss[i] > tt[i] {
                prev_greater = 1;
            }
            else if ss[i] < tt[i] {
                prev_greater = -1;
            }
        }
        if prev_greater == 0 {
            println!("{}", "EQUAL");
        }
        else if prev_greater == 1 {
            println!("{}", "GREATER");
        }
        else {
            println!("{}", "LESS");
        }
    }
}