#include <iostream>
#include <cmath>
using namespace std;

const double EPS = 1.0e-12;

struct Point {
  public:
    double x, y;
    Point() {};
    Point(double _x, double _y) : x(_x), y(_y) {};
    Point operator+(const Point &rhs) const {
      return Point(this->x + rhs.x, this->y + rhs.y);
    }
    Point operator-(const Point &rhs) const {
      return Point(this->x - rhs.x, this->y - rhs.y);
    }
    Point operator*(double rhs) const {
      return Point(this->x * rhs, this->y * rhs); 
    }
};

Point intersect(Point &a0, Point &a1, Point &b0, Point &b1, int &err) {
  Point p;
  double s, t;
  Point a01 = a1 - a0;
  Point b10 = b0 - b1;
  Point c = b0 - a0;
  double det = a01.x * b10.y - a01.y * b10.x;
  
  err = 0;
  if (abs(det) < EPS) { // two lines are parallel
    err = 1;
  } else {
    s = (b10.y * c.x - b10.x * c.y) / det;
    t = (a01.x * c.y - a01.y * c.x) / det;
    if (s < -EPS || s > 1.0 + EPS || t < -EPS || t > 1.0 + EPS) {
      err = 2;
    }
    p = a0 + a01 * s;
  }
  return p;
}

double triangleArea(Point &a, Point &b, Point &c) {
  Point ab = b - a;
  Point ac = c - a;
  return abs(ab.x * ac.y - ab.y * ac.x) * 0.5;
}

int main() {
  int err;
  double area;
  Point p[6];
  Point a, b, c;
  while (1) {
    cin >> p[0].x >> p[0].y;
    cin >> p[1].x >> p[1].y;
    if (!p[0].x && !p[0].y && !p[1].x && !p[1].y) {
      break;
    }
    for (int i=2; i<6; i++) {
      cin >> p[i].x >> p[i].y;
    }
    a = intersect(p[0], p[1], p[2], p[3], err);
    if (!err) b = intersect(p[2], p[3], p[4], p[5], err);
    if (!err) c = intersect(p[4], p[5], p[0], p[1], err);
    if (err) {
      cout << "kyo" << endl;
    } else {
      area = triangleArea(a, b, c);
      if (area < EPS) {
        cout << "kyo" << endl;
      } else if (area < 100000) {
        cout << "syo-kichi" << endl;
      } else if (area < 1000000) {
        cout << "kichi" << endl;
      } else if (area < 1900000) {
        cout << "chu-kichi" << endl;
      } else {
        cout << "dai-kichi" << endl;
      }
    }
  }
}