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

#define BUFSIZE 65536

char buf[BUFSIZE];

inline double base(double r, double x) {
    return sqrt(r*r - x*x);
}

inline double calc(double r1, double r2) {
    return base(r1+r2, r1-r2);
}

bool judge(int w, vector<int>& rs) {
    const int size = rs.size();
    sort(rs.begin(), rs.end());
    deque<int> deq(rs.begin(), rs.end());
    vector<int> bs;
    bs.push_back(deq.front());
    deq.pop_front();
    int right = deq.front();
    deq.pop_front();
    while(!deq.empty()) {
        bs.push_back(deq.back());
        deq.pop_back();
        if(!deq.empty()) {
            bs.push_back(deq.front());
            deq.pop_front();
        }
    }
    bs.push_back(right);
    double req = bs.front() + bs.back();
    for(int i=1; i<size; i++) {
        req += calc(bs[i-1], bs[i]);
    }
    return req <= w;
}

int main(){
  
  while(cin.getline(buf, BUFSIZE)) {
      istringstream iss(buf);
      int w;
      iss >> w;
      vector<int> rs;
      int r;
      while(iss >> r) rs.push_back(r);
      cout << (judge(w, rs) ? "OK" : "NA") << endl;
  }
}

