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

using namespace std;
const int MAX = (1<<13);
typedef pair<double,double> P; //P(center, radius)
vector<double> V;
P dp[MAX];
double box;

void init(){
  V.clear();
  fill(dp,dp+MAX,P(500,500));
  dp[0] = P(0,0);
}

void input(string s){
  stringstream ss(s);
  ss>>box;
  double n;
  while(ss>>n) V.push_back(n);
}

void solve(){
  for(int i = 0; i < (1<<V.size()); i++)
    for(int j = 0; j < V.size(); j++)
      if(i == 0){
	int nex = (1<<j);
	dp[nex].first = dp[nex].second = V[j];
	
      }else if(!(i&(1<<j))){
	int nex = i+(1<<j);
	P p = dp[i];
	p.first += 2.0*sqrt(dp[i].second*V[j]);
	p.second = V[j];
	if(p.first + p.second < dp[nex].first+dp[nex].second) dp[i+(1<<j)] = p;
	else if(p.first+p.second == dp[nex].first+dp[nex].second &&
		p.second < dp[nex].second) dp[i+(1<<j)] = p;

      }
  int last = (1<<V.size())-1;
  // cout << dp[last].first << " " << dp[last].second << endl;
  if(dp[last].first+dp[last].second <= box) cout << "OK" << endl;
  else cout << "NA" << endl;
}

int main(){

  string s;
  while(getline(cin,s)){
    init();
    input(s);
    solve();
  }
  return 0;
}