#include <iostream>
#include <cstdlib>
#include <string>
#include <string.h>
#include <cmath>
using namespace std;
int n,len;
int r[12];
bool input(){
	string str="";
	if(!getline(cin,str)) return false;
	n=-1;
	for(int i=0;i<str.size();i++){
		char ch; ch=str[i];
		string tmp="";
		while(ch!=' '){
			tmp+=ch,i++; if(i>=str.size()) break;
			ch=str[i];
		}
		if(n==-1) len=atoi(tmp.c_str()),n++;
		else r[n++]=atoi(tmp.c_str());
	}
	return true;
}
double dp[1<<12][12];
double EPS=1e-10;
double ADD(double a,double b){
	if(abs(a+b)<=EPS*(abs(a)+abs(b))) return 0;
	return a+b;
}
double LEN(double a,double b){ return sqrt(4*a*b);}
int main() {
	while(input()){
		for(int i=0;i< 1<<n ;i++) for(int j=0;j<n;j++) dp[i][j]=100000;
		for(int i=0;i<n;i++) dp[((1<<n)-1)-(1<<i)][i]=r[i];
		//1が立っているところはまだ見てない
		for(int S=(1<<n)-2;S>=0;S--){
			//vが現在地
			for(int v=0;v<n;v++){
				for(int u=0;u<n;u++){
					if( S>>u & 1){
						dp[S-(1<<u)][u]=min(dp[S-(1<<u)][u],dp[S][v]+LEN(r[v],r[u]));
					}
				}
			}
		}
		double MIN=100000;
		for(int i=0;i<n;i++) if(MIN>dp[0][i]+r[i]) MIN=dp[0][i]+r[i];
		if(ADD(MIN,-len)<=0) cout << "OK" << '\n' ;
		else cout << "NA" << '\n' ;
		memset(r,0,sizeof(r));
	}
}