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

using namespace std;

double getPackWidth(vector<int> &v) {
    int n = v.size();
    double ret = v[0] + v[n-1];
    for (int i=0; i+1<n; ++i) {
        ret += sqrt(pow(v[i] + v[i+1], 2) - pow(v[i] - v[i+1], 2));
    }
    return ret;
}

int main() {
    string s;
    while (getline(cin,s)) {
        stringstream ss(s);
        int w;
        ss >> w;
        int r;
        vector<int> cake;
        while (ss >> r) cake.push_back(r);

        sort(cake.begin(), cake.end());

        vector<int> v1, v2;
        int n = cake.size();
        for (int i=0; i<=n-1-i; ++i) {
            if (i == n-1-i) {
                v1.push_back(cake[i]);
                v2.push_back(cake[i]);
            } else {
                v1.push_back(cake[i]);
                v1.push_back(cake[n-1-i]);
                v2.push_back(cake[n-1-i]);
                v2.push_back(cake[i]);
            }
        }

        bool ok = getPackWidth(v1) <= w || getPackWidth(v2) <= w;
        cout << (ok ? "OK" : "NA") << endl;
    }
    return 0;
}