#include<iostream>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>
#include<map>
#include<set>
#include<climits>
#include<stack>
#include<cstdlib>
#include<ctime>
#include<cmath>
#include<string>
#include<cstring>
#include<sstream>
using namespace std;

const int LOOP_TIMES = 1e2;
const double EPS = 1e-6;
int L, N;

double Evaluate(int *r){
	double val = r[0] + r[N-1];
	for(int i = 0; i < N - 1; i++){
		int a = abs( r[i] - r[i+1] ), c = r[i] + r[i+1];
		val += sqrt(c*c - a*a);
	}
	return val;
}

bool IsChange(int cnt){
	return cnt < rand()%LOOP_TIMES + 1;
}

double Solve(int *r){
	double score = Evaluate(r), mi = score;
	for(int cnt = 0; cnt < LOOP_TIMES; cnt++){
		int *a = r + rand()%N, *b = r + rand()%N;
		swap(*a, *b);

		double next_score = Evaluate(r);
		if( score >= next_score && !IsChange(cnt) ) swap(*a, *b);
		else score = next_score;
		
		mi = min(mi, score);
	}
	return mi;
}

int main(){
	while(cin >> L){
		N = 0;
		int r[12];
		string S;
		getline(cin, S);
		stringstream SS(S);
		while( !SS.eof() ){
			SS >> r[N++];
		}

		if(L - Solve(r) + EPS > 0) puts("OK");
		else puts("NA");
	}
	return 0;
}