#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;

#define ESP 10e-6
#define MAX 12

double sqs[MAX][MAX] = {{0,}};

double CalcCirclesLength(const vector<int> &r){
	double ret;
	ret = r[0];
	for(unsigned int i = 0; i < r.size() - 1; ++i){
		ret += 2 * sqrt((double)r[i]*r[i+1]);
	}
	ret += r[r.size() - 1];
	return ret;
}
int main(void){
	for(int i = 1; i < sizeof(sqs)/sizeof(*sqs); ++i){
		for(int j = 1; j < sizeof(*sqs)/sizeof(**sqs); ++j){
			sqs[i][j] = sqrt((double)i * j);
		}
	}
	while(true){
		int w;
		double length = 0;
		vector<int> vCandR;
		vector<int> vR;
		
		cin >> w;
		if( cin.eof() ) break;
		while( true ){
			int tmp;
			cin >> tmp;
			vCandR.push_back(tmp);
			if( '\n' == cin.get() ) break;
		}

		vR.push_back(vCandR[0]);
		vCandR.erase( vCandR.begin()+0 );
		while( vCandR.size() > 0 ){
			double minlen = 241;
			int minind = 0;
			int minins = 0;

			//for(unsigned int i = 0; i < vCandR.size(); ++i){	
				double l;
				int i = 0;

				for(unsigned j = 0; j <= vR.size(); ++j){
					vR.insert(vR.begin() + j,vCandR[i]);
					/*for(unsigned int m = 0; m < vR.size(); ++m){
						cout << vR[m] << ' ';
					}*/

					l = CalcCirclesLength( vR );
					if( l < minlen ){
						minlen = l; minind = i; minins = j;
						//cout << " O(min = " << minlen << ")";
					}
					vR.erase(vR.begin() + j);
					//cout << endl;
				}
			//}
			vR.insert( vR.begin() + minins, vCandR[minind] );
			
			
			vCandR.erase( vCandR.begin() + minind );
		}
		length = CalcCirclesLength( vR );
		if( fabs( length - w ) <= ESP || length <= w ) cout << "OK\n";
		else cout << "NA\n";
	}
	return 0;
}