#include<iostream>
#include<sstream>
#include<string>
#include<vector>
#include<cmath>

const int INF = 1 << 30;

int l;
std::string s;	
double d[12][12], dp[1 << 12][12];

int main()
{
	while( std::getline( std::cin, s ) )
	{
		for( int S = 0; S < 1 << 12; ++S )
				std::fill( dp[S], dp[S] + 12, INF );

		std::istringstream iss( s );

		iss >> l;

		int r;
		std::vector<int> rs;

		while( iss >> r )
			rs.push_back( r );

		int n = rs.size();

		for( int i = 0; i != n; ++i )
			for( int j = 0; j != n; ++j )
				d[i][j] = 2 * sqrt( rs[i] * rs[j] );

		double ans = INF;

		for( int i = 0; i != n; ++i )
			dp[( 1 << n ) - 1 - ( 1 << i )][i] = rs[i];
			
		for( int S = ( 1 << n ) - 2; S >= 0; --S )
			for( int v = 0; v != n; ++v )
				if( !( S >> v & 1 ) )
					for( int u = 0; u != n; ++u )
						dp[S][v] = std::min( dp[S][v], dp[S | ( 1 << v )][u] + d[v][u] );

		for( int j = 0; j != n; ++j )
			ans = std::min( ans, dp[0][j] + rs[j] );

		if( ans <= l )
			std::cout << "OK" << std::endl;
		else
			std::cout << "NA" << std::endl;
	}
	
	return 0;
}