#include <iostream>
#include <algorithm>
#include <sstream>
#include <cmath>
using namespace std;

const int MAXN = 13;
const double inf = 1e10;
int N;
int W;
int R[MAXN];
double dp[1<<MAXN][MAXN];

int main() {
  string line;
  while(getline(cin, line)) {
    stringstream ss(line);
    ss >> W;
    N = 0;
    while(ss >> R[N]) ++N;
    fill(dp[0], dp[1<<MAXN], inf);
    for(int i = 0; i < N; ++i) {
      dp[1<<i][i] = R[i];
    }
    for(int b = 0; b < (1<<N); ++b) {
      for(int i = 0; i < N; ++i) {
        for(int k = 0; k < N; ++k) {
          if(b&(1<<k)) continue;
          int d = (R[i]+R[k])*(R[i]+R[k]) - (R[i]-R[k])*(R[i]-R[k]);
          dp[b|(1<<k)][k] = min(dp[b|(1<<k)][k], dp[b][i] + sqrt(d));
        }
      }
    }
    double res = inf;
    for(int i = 0; i < N; ++i) {
      res = min(res, dp[(1<<N)-1][i]+R[i]);
    }
    if(res <= W) cout << "OK" << endl;
    else cout << "NA" << endl;
  }
  return 0;
}