#include <iostream>
#include <algorithm>
using namespace std;
struct Point {
long long x, y;
bool operator<(const Point& other) const {
if (x != other.x) return x < other.x;
return y < other.y;
}
bool operator==(const Point& other) const {
return x == other.x && y == other.y;
}
};
int orientation(Point p, Point q, Point r) {
long long val = (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
if (val == 0) return 0;
return (val > 0) ? 1 : 2;
}
bool onSegment(Point p, Point q, Point r) {
return r.x <= max(p.x, q.x) && r.x >= min(p.x, q.x) &&
r.y <= max(p.y, q.y) && r.y >= min(p.y, q.y);
}
string solve() {
Point a, b, c, d;
if (!(cin >> a.x >> a.y >> b.x >> b.y >> c.x >> c.y >> d.x >> d.y)) return "";
int o1 = orientation(a, b, c);
int o2 = orientation(a, b, d);
int o3 = orientation(c, d, a);
int o4 = orientation(c, d, b);
if (((o1 > 0 && o2 > 0 && o1 != o2) || (o1 == 0 || o2 == 0)) &&
((o3 > 0 && o4 > 0 && o3 != o4) || (o3 == 0 || o4 == 0))) {
if (o1 == 0 && o2 == 0 && o3 == 0 && o4 == 0) {
if (b < a) swap(a, b);
if (d < c) swap(c, d);
Point max_start = max(a, c);
Point min_end = min(b, d);
if (max_start == min_end) return "jedna";
if (max_start < min_end) return "vise";
return "nema";
}
return "jedna";
}
return "nema";
}
int main() {
string result = solve();
if (result != "") cout << result << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBQb2ludCB7CiAgICBsb25nIGxvbmcgeCwgeTsKICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IFBvaW50JiBvdGhlcikgY29uc3QgewogICAgICAgIGlmICh4ICE9IG90aGVyLngpIHJldHVybiB4IDwgb3RoZXIueDsKICAgICAgICByZXR1cm4geSA8IG90aGVyLnk7CiAgICB9CiAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUG9pbnQmIG90aGVyKSBjb25zdCB7CiAgICAgICAgcmV0dXJuIHggPT0gb3RoZXIueCAmJiB5ID09IG90aGVyLnk7CiAgICB9Cn07CgoKaW50IG9yaWVudGF0aW9uKFBvaW50IHAsIFBvaW50IHEsIFBvaW50IHIpIHsKICAgIGxvbmcgbG9uZyB2YWwgPSAocS55IC0gcC55KSAqIChyLnggLSBxLngpIC0gKHEueCAtIHAueCkgKiAoci55IC0gcS55KTsKICAgIGlmICh2YWwgPT0gMCkgcmV0dXJuIDA7CiAgICByZXR1cm4gKHZhbCA+IDApID8gMSA6IDI7Cn0KCgpib29sIG9uU2VnbWVudChQb2ludCBwLCBQb2ludCBxLCBQb2ludCByKSB7CiAgICByZXR1cm4gci54IDw9IG1heChwLngsIHEueCkgJiYgci54ID49IG1pbihwLngsIHEueCkgJiYKICAgICAgICAgICByLnkgPD0gbWF4KHAueSwgcS55KSAmJiByLnkgPj0gbWluKHAueSwgcS55KTsKfQoKc3RyaW5nIHNvbHZlKCkgewogICAgUG9pbnQgYSwgYiwgYywgZDsKICAgIGlmICghKGNpbiA+PiBhLnggPj4gYS55ID4+IGIueCA+PiBiLnkgPj4gYy54ID4+IGMueSA+PiBkLnggPj4gZC55KSkgcmV0dXJuICIiOwoKICAgIGludCBvMSA9IG9yaWVudGF0aW9uKGEsIGIsIGMpOwogICAgaW50IG8yID0gb3JpZW50YXRpb24oYSwgYiwgZCk7CiAgICBpbnQgbzMgPSBvcmllbnRhdGlvbihjLCBkLCBhKTsKICAgIGludCBvNCA9IG9yaWVudGF0aW9uKGMsIGQsIGIpOwoKICAgIGlmICgoKG8xID4gMCAmJiBvMiA+IDAgJiYgbzEgIT0gbzIpIHx8IChvMSA9PSAwIHx8IG8yID09IDApKSAmJgogICAgICAgICgobzMgPiAwICYmIG80ID4gMCAmJiBvMyAhPSBvNCkgfHwgKG8zID09IDAgfHwgbzQgPT0gMCkpKSB7CiAgICAgICAgaWYgKG8xID09IDAgJiYgbzIgPT0gMCAmJiBvMyA9PSAwICYmIG80ID09IDApIHsKCiAgICAgICAgICAgIGlmIChiIDwgYSkgc3dhcChhLCBiKTsKICAgICAgICAgICAgaWYgKGQgPCBjKSBzd2FwKGMsIGQpOwoKICAgICAgICAgICAgUG9pbnQgbWF4X3N0YXJ0ID0gbWF4KGEsIGMpOwogICAgICAgICAgICBQb2ludCBtaW5fZW5kID0gbWluKGIsIGQpOwoKICAgICAgICAgICAgaWYgKG1heF9zdGFydCA9PSBtaW5fZW5kKSByZXR1cm4gImplZG5hIjsKICAgICAgICAgICAgaWYgKG1heF9zdGFydCA8IG1pbl9lbmQpIHJldHVybiAidmlzZSI7CiAgICAgICAgICAgIHJldHVybiAibmVtYSI7CiAgICAgICAgfQogICAgICAgIHJldHVybiAiamVkbmEiOwogICAgfQoKICAgIHJldHVybiAibmVtYSI7Cn0KCmludCBtYWluKCkgewogICAgc3RyaW5nIHJlc3VsdCA9IHNvbHZlKCk7CiAgICBpZiAocmVzdWx0ICE9ICIiKSBjb3V0IDw8IHJlc3VsdCA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=