#include<iostream>
#include<cmath>
#include<algorithm>
#define INF 999999.999999
using namespace std;
string str;
int cnt;
double r[12],n,ans;
double dp[(1<<12)+1][12];
double t[12][12];

int get_num(string);
void input();
void init();
void make_table();

double rec(int S,int pos){

  if(dp[S][pos]!=INF)return dp[S][pos];

  if(S==(1<<(cnt))-1)return r[pos];

  for(int i=0;i<cnt;i++){
    if(((S>>i)&1)==1)continue;
    dp[S][pos]=min(dp[S][pos],rec(S+(1<<i),i)+t[pos][i]);

  }

  return dp[S][pos];
}


int main(){
  while(getline(cin,str)){
    init();
    input();
    make_table();
    ans=rec(1,0)+r[0];
    for(int i=1;i<cnt;i++){
      //cout<<ans<<endl;
      ans=min(ans , rec((1<<i),i)+r[i]);
    }
    if(ans<=n)cout<<"OK"<<endl;
    else cout<<"NA"<<endl;
    
  }
  return 0;
}


void make_table(){
  for(int i=1;i<12;i++){
    for(int j=0;j<i;j++){      
      t[i][j]=t[j][i]=sqrt(pow(r[i]+r[j],2.0)-pow(r[i]-r[j],2.0));
    }
  }
  
}

void init(){
  cnt=0;
  for(int i=0;i<=(1<<12);i++){
    for(int j=0;j<12;j++){
      dp[i][j]=INF;
    }
  }
}



void input(){
  n=get_num(str);
  for(int i=0;i<(int)str.size();i++)if(str[i]==' ')r[cnt++]=get_num(str.substr(i+1));
}


int get_num(string str){
  int res=0;
  for(int i=0;i<(int)str.size();i++){
    if(str[i]==' ')break;
    res*=10;
    res+=(str[i]-'0');
  }
  return res;
}