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)

#[allow(unused_imports)]
use std::io;
#[allow(unused_imports)]
use std::cmp::*;

#[allow(dead_code)]
fn getline() -> Vec<String> {
    let mut s = String::new();
    std::io::stdin().read_line(&mut s).ok().unwrap();
    s.split(' ').map(|x| x.trim().to_string()).collect::<Vec<String>>()
}

#[allow(dead_code)]
fn get<T: std::str::FromStr>(s: &String) -> T {
    s.parse().ok().unwrap()
}

fn solve() -> String {
    let a = &getline()[0].chars().collect::<Vec<_>>();
    let b = &getline()[0].chars().collect::<Vec<_>>();
    match a.len().cmp(&b.len()) {
        Ordering::Greater => "GREATER".to_string(),
        Ordering::Less => "LESS".to_string(),
        Ordering::Equal => {
            for i in 0..a.len() {
                match a[i].cmp(&b[i]) {
                    Ordering::Greater => return "GREATER".to_string(),
                    Ordering::Less => return "LESS".to_string(),
                    Ordering::Equal => ()
                }
            }
            "EQUAL".to_string()
        }
    }
}
        
fn main() {
    println!("{}", solve());
}