#include<iostream>
#include<sstream>
#include<cmath>
#include<algorithm>
using namespace std;
#define REP(i,b,n) for(int i=b;i<n;i++)
#define rep(i,n)   REP(i,0,n)
double rdata[12][12];
const double eps = 1e-10;

void pre_calc(int n,double *r){
  rep(i,n){
    rep(j,n){
      double A=r[i]+r[j],B=r[i]-r[j];
      rdata[i][j]=sqrt(A*A-B*B);
    }
    rdata[i][i]=0;
  }
}


bool solve(double total,double limit,int now,int n,bool *used,double *r,
	   int last){
  if ( total > limit)return false;
  if ( now == n){
    if ( total+r[last] <limit+1e-10)return true;
    return false;
  }
  
  rep(i,n){
    if ( used[i] ==true)continue;
    used[i]=true;
    if ( solve(total+rdata[last][i],limit,now+1,n,used,r,i))return true;
    used[i]=false;
  }
  
  return false;
}

main(){
  double in;
  while(cin>>in ){
    string t;getline(cin,t);stringstream sin(t);
    int n=0;
    double r[12];
    while(sin>>r[n])n++;
    bool used[12]={false};
    sort(r,r+n);
    pre_calc(n,r);

    bool flag=false;
    rep(i,n){
      used[i]=true;
      if(solve(r[i],in,1,n,used,r,i)){flag=true;break;}
      used[i]=false;
    }
    
    if (flag)puts("OK");
    else puts("NA");
    
  }
  return false;
}