import std.stdio;
import std.math;
import std.string;
import std.conv;
import std.algorithm;

int n;
int length;
double[12] r;
double[12][12] cost;
double[1 << 12][12] memo;

void main(){
	string s;
	while (s = readln(), s) {
		string[] tmp = split(s);
		length = to!int(tmp[0]);
		for (int i = 1; i < tmp.length; i++) {
			r[i-1] = to!int(tmp[i]);
		}
		n = cast(int)tmp.length - 1;
		for (int i = 0; i < n; i++) {
			memo[i] = -1;
			for (int j = 0; j < n; j++) {
				cost[i][j] = cost[j][i] = distance(r[i], r[j]);
			}
		}
		double ans = tsp(0,1);
		if (length < ans) writeln("NA");
		else writeln("OK");
	}
}

double distance(double r1, double r2){
	return sqrt(4*r1*r2);
}
double tsp(int v, int b){
	if(memo[v][b] != -1) return memo[v][b];
	if (b == (1 << n) -1) return cost[v][0];

	double res = 99999999;
	for (int w = 0; w < n; w++) {
		if (b & (1 << w)) continue;
		res = min(res, cost[v][w] + tsp(w, b | (1 << w)));
	}
	return memo[v][b] = res;
}