#include <bits/stdc++.h>
using namespace std;
long long int modPow(long long int a, long long int b) {
  long long int x;
  for (x = 1; b > 0; b /= 2, a = (a * a) % 1000000007)
    if (b % 2 == 1) x = (x * a) % 1000000007;
  return x % 1000000007;
}
string convertInt(int number) {
  stringstream ss;
  ss << number;
  return ss.str();
}
int convertString(string s) {
  int num;
  stringstream sstr(s);
  sstr >> num;
  return num;
}
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
vector<pair<long long int, long long int> > ar;
set<long long int> check, check2;
int pred(pair<long long int, long long int> a,
         pair<long long int, long long int> b) {
  if (a.first == b.first)
    return a.second < b.second;
  else
    return a.first < b.first;
}
int exist(long long int a, long long int b) {
  for (int i = 0; i < 8; i++)
    if (ar[i].first == a && ar[i].second == b) return 1;
  return 0;
}
int main() {
  ar.resize(8);
  for (int i = 0; i < 8; i++) {
    cin >> ar[i].first >> ar[i].second;
  }
  sort(ar.begin(), ar.end(), pred);
  for (int i = 0; i < 8; i++) check.insert(ar[i].first);
  if (check.size() != 3) {
    cout << "ugly";
    return 0;
  }
  for (int i = 0; i < 8; i++) check2.insert(ar[i].second);
  if (check2.size() != 3) {
    cout << "ugly";
    return 0;
  }
  int i = 0, j = 0;
  for (set<long long int>::iterator it1 = check.begin(); it1 != check.end();
       it1++) {
    j = 0;
    for (set<long long int>::iterator it2 = check2.begin(); it2 != check2.end();
         it2++) {
      if (i == 1 && j == 1) {
        if (exist(*it1, *it2)) {
          cout << "ugly";
          return 0;
        }
      } else {
        if (!exist(*it1, *it2)) {
          cout << "ugly";
          return 0;
        }
      }
      j++;
    }
    i++;
  }
  cout << "respectable";
  cin >> i;
  return 0;
}
