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 C++14 (GCC 5.4.1) (judge verdict: Accepted)

#include <iostream>
#include <string>

typedef enum {
  JUDGE_GREATER = 0,
  JUDGE_EQUAL   = 1,
  JUDGE_LESS    = 2,
  JUDGE_ALL     = 3,
} E_JUDGE;

E_JUDGE greater(std::string a, std::string b) {
  if (a.size() > b.size()) {
    return JUDGE_GREATER;;
  }
  if (a.size() == b.size()) {
    std::string::iterator ita = a.begin();
    std::string::iterator itb = b.begin();
    for (; ita != a.end() && ita!= b.end(); ita++, itb++) {
      if (*ita == *itb) {
	continue;
      }
      if (*ita > *itb) {
	return JUDGE_GREATER;
      }
      if (*ita < *itb) {
	return JUDGE_LESS;
      }
    }
    return JUDGE_EQUAL;
  }
  return JUDGE_LESS;
}

int main(int argc, char* argv[])
{
  std::string A, B;
  std::cin >> A >> B;

  E_JUDGE judge = greater(A, B);
  if (judge == JUDGE_GREATER) {
    std::cout << "GREATER" << std::endl;
  }
  if (judge == JUDGE_EQUAL) {
    std::cout << "EQUAL" << std::endl;
  }
  if (judge == JUDGE_LESS) {
    std::cout << "LESS" << std::endl;
  }

  return 0;
}