#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <cfloat>
#include <stack>
#include <queue>
#include <vector>
#include <string>
#include <iostream>
#include <set>
#include <map>
#include <time.h>
typedef long long int ll;
typedef unsigned long long int ull;
#define BIG_NUM 2000000000
#define MOD 1000000007
#define EPS 0.000000001
using namespace std;


enum Type{
	Sente,
	Gote,
};


struct Info{
	void set(int arg_L_i,int arg_R_i,int arg_L_n,int arg_R_n){
		L_i = arg_L_i;
		R_i = arg_R_i;
		L_n = arg_L_n;
		R_n = arg_R_n;
	}
	int L_i,R_i,L_n,R_n;
};


bool sente_win(Type type,Info info){

	if(type == Sente){

		bool ret = false;

		if(info.L_i >= 5 && info.R_i >= 5)return false;

		if(info.L_n <= 4 && info.R_n <= 4){
			if(info.L_i <= 4){
				Info left_left,left_right;
				left_left.set(info.L_i,info.R_i,info.L_n+info.L_i,info.R_n);
				left_right.set(info.L_i,info.R_i,info.L_n,info.R_n+info.L_i);
				ret = (sente_win(Gote,left_left) || sente_win(Gote,left_right));
			}
			if(info.R_i <= 4){
				Info right_left,right_right;
				right_left.set(info.L_i,info.R_i,info.L_n+info.R_i,info.R_n);
				right_right.set(info.L_i,info.R_i,info.L_n,info.R_n+info.R_i);
				ret |= (sente_win(Gote,right_left) || sente_win(Gote,right_right));
			}
		}else if(info.L_n <= 4 && info.R_n >= 5){
			if(info.L_i <= 4){
				Info left_left;
				left_left.set(info.L_i,info.R_i,info.L_n+info.L_i,info.R_n);
				ret = sente_win(Gote,left_left);
			}
			if(info.R_i <= 4){
				Info right_left;
				right_left.set(info.L_i,info.R_i,info.L_n+info.R_i,info.R_n);
				ret |= sente_win(Gote,right_left);
			}
		}else if(info.L_n >= 5 && info.R_n <= 4){
			if(info.L_i <= 4){
				Info left_right;
				left_right.set(info.L_i,info.R_i,info.L_n,info.R_n+info.L_i);
				ret = sente_win(Gote,left_right);
			}
			if(info.R_i <= 4){
				Info right_right;
				right_right.set(info.L_i,info.R_i,info.L_n,info.R_n+info.R_i);
				ret |= sente_win(Gote,right_right);
			}
		}

		return ret;

	}else{ //type = Gote

		if(info.L_n >= 5 && info.R_n >= 5){
			return true;
		}

		if(info.L_i <= 4 && info.R_i <= 4){
			if(info.L_n <= 4){
				Info left_left;
				left_left.set(info.L_i+info.L_n,info.R_i,info.L_n,info.R_n);
				if(!sente_win(Sente,left_left))return false;

				Info left_right;
				left_right.set(info.L_i,info.R_i+info.L_n,info.L_n,info.R_n);
				if(!sente_win(Sente,left_right))return false;
			}

			if(info.R_n <= 4){
				Info right_left;
				right_left.set(info.L_i+info.R_n,info.R_i,info.L_n,info.R_n);
				if(!sente_win(Sente,right_left))return false;

				Info right_right;
				right_right.set(info.L_i,info.R_i+info.R_n,info.L_n,info.R_n);
				if(!sente_win(Sente,right_right))return false;
			}
		}else if(info.L_i <= 4 && info.R_i >= 5){
			if(info.L_n <= 4){
				Info left_left;
				left_left.set(info.L_i+info.L_n,info.R_i,info.L_n,info.R_n);
				if(!sente_win(Sente,left_left))return false;
			}

			if(info.R_n <= 4){
				Info right_left;
				right_left.set(info.L_i+info.R_n,info.R_i,info.L_n,info.R_n);
				if(!sente_win(Sente,right_left))return false;
			}
		}else if(info.L_i >= 5 && info.R_i <= 4){
			if(info.L_n <= 4){
				Info left_right;
				left_right.set(info.L_i,info.R_i+info.L_n,info.L_n,info.R_n);
				if(!sente_win(Sente,left_right))return false;
			}

			if(info.R_n <= 4){
				Info right_right;
				right_right.set(info.L_i,info.R_i+info.R_n,info.L_n,info.R_n);
				if(!sente_win(Sente,right_right))return false;
			}
		}

		return true;
	}
}


int main(){

	Info first;
	scanf("%d %d %d %d",&first.L_i,&first.R_i,&first.L_n,&first.R_n);

	if(sente_win(Sente,first)){
		printf("ISONO\n");
	}else{
		printf("NAKAJIMA\n");
	}

	return 0;
}

Measured memory_bytes: 3156