#include <bits/stdc++.h>
using namespace std;

const double INF = 1e5;

vector<double> v;
int n;
double len;
double dp[1 << 12][12];

double search(int s, int prev)
{
	if (s == (1 << n) - 1){
		return v[prev];
	}
	if (~prev && dp[s][prev] < INF){
		return dp[s][prev];
	}
	
	double res = INF;
	for (int i = 0; i < n; i++){
		int x = 1 << i;
		if (s & x) continue;
		if (s == 0){
			res = min(res, v[i] + search(x, i));
		}
		else {
			double t = sqrt((v[i] + v[prev]) * (v[i] + v[prev]) - (v[i] - v[prev]) * (v[i] - v[prev]));
			res = min(res, t + search(s | x, i));
		}
	}
	
	return dp[s][prev] = res;
}

int main()
{
	string str;
	while (getline(cin, str)){
		stringstream ss(str);
		
		len = -1;
		v.clear();
		fill((double *)dp, (double *)dp + (1 << 12) * 12, INF);
		
		while (!ss.eof()){
			double tmp;
			ss >> tmp;
			if (len != -1) v.push_back(tmp);
			else len = tmp;
			ss.ignore();
		}
		
		n = v.size();
		
		double res = search(0, -1);
		if (res < len + 1e-6) puts("OK");
		else puts("NA");
	}
	return 0;
}