#include <iostream>
#include <list>
#include <cmath>
#include <string>
#include <sstream>
#include <vector>
using namespace std;

#define sqr(x) ((x) * (x))

double xdistance(double r1, double r2) {
	if(r1 == 0 || r2 == 0)
		return max(r1, r2);
	return sqrt(sqr(r1 + r2) - sqr(r1 - r2));
}

int main(void) {
	string str;

	while(getline(cin, str)) {
		int width;
		vector<int> radius;
		stringstream sstr(str);
		int tmp;

		sstr >> width;
		while(sstr >> tmp)
			radius.push_back(tmp);

		list<int> lst;
		lst.push_back(0);
		for(int i = 0; i < radius.size(); i++) {
			list<int>::iterator ins = lst.begin();
			double min_plus = 100000;
			int prev_rad = 0;
			for(list<int>::iterator p = lst.begin(); p != lst.end(); ++p) {
				double plus;
				plus = xdistance(prev_rad, radius[i]) + xdistance(radius[i], *p) - xdistance(prev_rad, *p);
				
				if(plus < min_plus) {
					min_plus = plus;
					ins = p;
				}
				prev_rad = *p;
			}

			lst.insert(ins, radius[i]);
		}

		int prev_rad = 0;
		double accume = 0;
		for(list<int>::iterator p = lst.begin(); p != lst.end(); ++p) {
			accume += xdistance(prev_rad, *p);
			prev_rad = *p;
		}

		if(accume <= width)
			cout << "OK" << endl;
		else
			cout << "NA" << endl;
	}

	return 0;
}