#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
#include<cstdio>

#define MAX 12

using namespace std;

long double CalculateRoleCakesLength(const vector<int> &r){
	long double ret;
	ret = r[0] + r[r.size() - 1];
	for(unsigned int i = 0; i < r.size() - 1; ++i){
		ret += 2 * sqrt((long double)(r[i]*r[i+1]));
	}
	return ret;
}
long double MinmumLengthArrangeRoleCakes(vector<int> &vInBoxCakes, vector<int> &vCakes){
	if( vCakes.size() == 0 ) return 0;
	else{
		while( vCakes.size() > 0 ){
			long double minlen = 262144;
			int minins = 0;

			for(unsigned j = 0; j <= vInBoxCakes.size(); ++j){
				long double l;

				vInBoxCakes.insert( vInBoxCakes.begin() + j, vCakes[0]);
				l = CalculateRoleCakesLength( vInBoxCakes );
				if( l < minlen ){
					minlen = l; minins = j;
				}
				vInBoxCakes.erase( vInBoxCakes.begin() + j );
			}
			vInBoxCakes.insert( vInBoxCakes.begin() + minins, vCakes[0] );
			vCakes.erase( vCakes.begin() );
		}
		return CalculateRoleCakesLength( vInBoxCakes );
	}
}
int main(void){
	while(true){
		long double boxLength;
		long double length = 0;
		vector<int> vLeftCakes;
		vector<int> vInBoxCakes;
		
		cin >> boxLength;
		if( cin.eof() ) break;
		while( true ){
			int tmp;

			if( '\n' == cin.get() ) break;
			cin >> tmp;
			vLeftCakes.push_back(tmp);
		}

		length = MinmumLengthArrangeRoleCakes( vInBoxCakes, vLeftCakes );
		if( length <= boxLength ) cout << "OK\n";
		else cout << "NA\n";
	}
	return 0;
}