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

using namespace std;

int length;
vector<int> rn;
double dp[1 << 12 + 1][12];

const int INF = 1000000;

// nÌrbgª§ÁÄ¢éª»Ý ÉüÁÄ¢é~
// nÌóÔ©ç½ÇèÂ¯éÅ¬Ì·³ðßé
void solve(){

  for(int i = 0; i < 1 << rn.size(); i++){
    fill(dp[i],dp[i]+12,INF);
  }

  for(int i = 0; i < rn.size(); i++){
    dp[1<<i][i] = 2*rn[i];
  }

  for(int s = 1; s < 1 << rn.size(); s++){
    for(int j = 0; j < rn.size(); j++){
      if((s >> j & 1) == 0){
	continue;
      }
      for(int i = 0; i < rn.size(); i++){
	if((s >> i) & 1 == 0){
	  dp[s|1<<i][i] = min(dp[s|1<<i][i]
			      ,dp[s][j] + 2*sqrt(rn[j]+rn[i])-rn[j]+rn[i]);
	}
      }
    }
  }
  double minNum = INF;
  for(int i = 0; i < rn.size(); i++){
    minNum = min(minNum,dp[(1<<rn.size())-1][i]);
  }
  if(minNum < (double)length){
    cout << "OK" << endl;
  }
  else
    cout << "NA" << endl;
}

int main(){
  int n;

  string str;
  while(1){
    //    fill(dp,dp+1<<12,-1);
    rn.clear();
    getline(cin,str);
    if(cin.eof())
      break;
    bool flag = true;
    string s;
    for(int i = 0; i < str.size(); i++){
      if(str[i] == ' '){
	if(flag){
	  length = atoi(s.c_str());
	  flag = false;
	}
	else{
	  rn.push_back(atoi(s.c_str()));
	}
	s = "";
      }
      else if(i == str.size()-1){
	s += str[i];
	rn.push_back(atoi(s.c_str()));
      }
      else
	s += str[i];
    }

    solve();
    // cout << length << " " << flush;
    // for(int i = 0; i < rn.size(); i++){
    //   cout << rn[i] << " " << flush;
    // }
    // cout << endl;
  }
  
  return 0;
}PAA=