#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <utility>
#include <cctype>
using namespace std;

#define rep(i,n) for(int (i)=0; (i)<(int)(n); ++(i))
#define foreach(c,i) for(__typeof((c).begin()) i=(c).begin();i!=(c).end();i++)

string in;
int L, temp, N;
const int kInf = 1<<30;
vector<int> v;
double dp[1<<15][15];

double rec(int S, int pv) {
  // printf("%d : %d\n", S, pv);
  if (S == (1<<N)-1) return v[pv];
  double &d= dp[S][pv];
  if (d >= 0) return d;
  
  double ret = kInf;
  for (int i = 0; i < N; ++i) {
    if (!(S >> i & 1)) {
      ret = min(ret, 2 * sqrt(v[pv] * v[i]) + rec(S|1<<i, i));
    }
  }
  return d = ret;
}

int main() {
  while (getline(cin, in)) {
    // input
    istringstream is(in);
    is >> L;
    v.clear();
    while (is >> temp) v.push_back(temp);
    N = v.size();
    double ans = kInf;
    rep(i,N) {
      memset(dp, -1, sizeof dp);
      ans = min(ans, v[i] + rec(1<<i, i));
    }
    // printf("%lf :", ans);
    printf("%s\n", (L >= ans) ? "OK" : "NA" );
    
  }
  return 0;
}