#if 1
#define _CRT_SECURE_NO_WARNINGS
#define _USE_MATH_DEFINES
#include <cfloat>
#include <climits>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <iostream>
#include <memory>
#include <string>
#include <algorithm>
#include <complex>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <stack>
#include <vector>
#include <bitset>
using namespace std;

#ifdef _MSC_VER
#include "_lib_msc.h"
#endif

#define ITER(c)             __typeof__((c).begin())
#define FOREACH(it, c)      for (ITER(c) it=(c).begin(); it != (c).end(); ++it)
#define RITER(c)            __typeof__((c).rbegin())
#define RFOREACH(it, c)     for (RITER(c) it=(c).rbegin(); it != (c).rend(); ++it)
#define REP(i, n)           for(int(i)=0;(i)<(n);++(i))
#define REPEAT(i, k, n)     for(int(i)=(k);(i)<((k)+(n));++(i))
#define RREP(i, n)          for(int(i)=(n)-1;(i)>=0;--(i))
#define RREPEAT(i, k, n)    for(int(i)=(k)+(n)-1;(i)>=(k);--(i))
#define FROMTO(i,f,t)       for(int(i)=(f);(i)<(t);(++i))
#define ALL(c)              (c).begin(), (c).end()
#define ESIZEOF(A)          (sizeof(A)/sizeof((A)[0]))
#define CIN_NO_SYNC         do { cin.tie(0); ios_base::sync_with_stdio(false); } while(0)
#define GETSTR(p)           fgets((p), sizeof(p), stdin)
#define CHOMP(p)            do{ char *_q = (p) + strlen(p)-1; if(*_q == '\n' || *_q == '\r') *_q = 0; } while(0)
#define FILL(m,v)           memset(m, v, sizeof(m))
#define mp                  make_pair
#define pb                  push_back
template<class _T> _T MAX(_T p1,_T p2){return (p2<p1)?p1:p2;} 
template<class _T> _T MIN(_T p1,_T p2){return (p1<p2)?p1:p2;} 
template <class _Tv> inline string join(const _Tv &v,string sep=" "){
    ostringstream s;FOREACH(it,v){if(it!=v.begin())s<<sep;s<<*it;};return s.str();
}
typedef long long ll;
typedef unsigned long long ull;
typedef unsigned int ui;
typedef double D;
typedef complex<D> P;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<string> VS;
#define X real()
#define Y imag()
#define EPS (1e-9)
#define DEQ(p1,p2) (abs((p1)-(p2)) < EPS)
inline int clz(ui n){return n==0?32:__builtin_clz(n);}
inline int clz(ull n){return n==0?64:__builtin_clzll(n);}
inline int crz(ui n){return n==0?32:__builtin_ctz(n);}
inline int crz(ull n){return n==0?64:__builtin_ctzll(n);}
inline int bitc(ui n){return __builtin_popcount(n);}
inline int bitc(ull n){return __builtin_popcountll(n);} 
#ifdef _DEBUG
#include "_lib_dbg.h"
#else
#define pf(...) /* */
#define pr(...) /* */
#define prfe(...) /* */
#define prfep(...) /* */
#define dbgchk(...) /* */
#endif
#endif

const char *tbl[] = { "dai-kichi","chu-kichi","kichi","syo-kichi","kyo" };

inline D outprd(const P &a, const P &b){ return (conj(a) * b).Y; }
bool is_intersected_ls(const P &a, const P &b, const P &c, const P &d){
    return (outprd(b-a, c-a) * outprd(b-a, d-a) < EPS) && (outprd(d-c, a-c) * outprd(d-c, b-c) < EPS);
}
P intersection_l(const P &a, const P &b, const P &c, const P &d) {
    P v1 = b - a; P v2 = d - c;
    return a + v1 * outprd(v2, c-a) / outprd(v2, v1);
}
D triangle_S(P p1, P p2, P p3){
    D l1 = sqrt(norm(p1-p2));
    D l2 = sqrt(norm(p2-p3));
    D l3 = sqrt(norm(p3-p1));
    D z = (l1 + l2 + l3) / 2;
    return sqrt(z * (z - l1) * (z - l2) * (z - l3));
}

int solve(int *x1, int *y1, int *x2, int *y2){
    P p11(x1[0],y1[0]), p12(x2[0],y2[0]);
    P p21(x1[1],y1[1]), p22(x2[1],y2[1]);
    P p31(x1[2],y1[2]), p32(x2[2],y2[2]);
    if(!is_intersected_ls(p11,p12,p21,p22)) return 4;
    if(!is_intersected_ls(p21,p22,p31,p32)) return 4;
    if(!is_intersected_ls(p31,p32,p11,p12)) return 4;
    P p1 = intersection_l(p11,p12,p21,p22);
    P p2 = intersection_l(p21,p22,p31,p32);
    P p3 = intersection_l(p31,p32,p11,p12);
    D s = triangle_S(p1,p2,p3);
    if(s + EPS >= 1900000.0) return 0;
    if(s + EPS >= 1000000.0) return 1;
    if(s + EPS >= 100000.0) return 2;
    return 3;
}

int main(void){
    int x1[3],y1[3],x2[3],y2[3];
    while(1){
        cin >> x1[0] >> y1[0] >> x2[0] >> y2[0];
        if(x1[0] == 0 && y1[0] == 0 && x2[0] == 0 && y2[0] == 0) break;
        cin >> x1[1] >> y1[1] >> x2[1] >> y2[1];
        cin >> x1[2] >> y1[2] >> x2[2] >> y2[2];
        cout << tbl[solve(x1,y1,x2,y2)] << endl;
    }

    return 0;
}