#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
#include <vector>
#include <cmath>

using namespace std;

const double EPS = 1e-8;

double dist(double p, double q) {
    return sqrt((p+q)*(p+q) - (p-q)*(p-q));
}

int main() {
    double box_len;
    vector<double> rs;
    string s;
    while (getline(cin, s)) {
        // 入力
        rs.clear();
        istringstream iss(s);
        iss >> box_len;
        double r;
        while (iss >> r) rs.push_back(r);
        
        // 解く
        sort(rs.begin(), rs.end());
        rotate(rs.begin()+1, rs.begin()+2, rs.end());
        box_len -= rs[0];
        box_len -= rs.back();

        do {
//            for (int i = 0; i < rs.size(); i++) cout << rs[i] << ' ';
//            cout << endl;
            bool possible = true;
            double l = box_len;
            for (int i = 0; i < rs.size()-1; i++) {
                l -= dist(rs[i], rs[i+1]);
                if (l < -EPS) {
                    possible = false;
                    break;
                }
            }
            if (possible) {
                cout << "OK" << endl;
                goto next_dataset;
            }
        } while (next_permutation(rs.begin()+1, rs.end()-1));

        cout << "NA" << endl;
next_dataset:
        continue;
    }
    return 0;
}