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

#define sqr(x) ((x) * (x))
#define INF 10000000

double dptable[1 << 13][13];
double cost[13][13];
int vertex;
int width;

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

void pre(string str) {
	vector<int> radius;
	stringstream sstr(str);
	int tmp;

	radius.push_back(0);
	sstr >> width;
	while(sstr >> tmp)
		radius.push_back(tmp);
	vertex = radius.size();

	/* cost */
	for(int i = 0; i < radius.size(); i++) {
		for(int j = 0; j < radius.size(); j++) {
			cost[i][j] = xdistance(radius[i], radius[j]);
		}
		cost[i][i] = 0;
	}

	/* dptable */
	for(int i = 0; i < 1 << 13; i++) {
		for(int j = 0; j < 13; j++) {
			dptable[i][j] = INF;
		}
	}

	dptable[(1 << vertex) - 1][0] = 0;
}

double solve(int S, int u) {
	for(int i = 0; i < vertex; i++) {
		if(!(S & (1 << i))) {
			dptable[S][u] = min(dptable[S][u], solve(S | (1 << i), i) + cost[u][i]);
		}
	}

	return dptable[S][u];
}

int main(void) {
	string str;

	while(getline(cin, str)) {
		pre(str);
		solve(0,0);

		if(width >= dptable[0][0])
			cout << "OK" << endl;
		else
			cout << "NA" << endl;
	}

	return 0;
}