#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;

const long double PI = acos(-1);
constexpr long double EPS = 1e-15;
constexpr int inf = 2e9;
constexpr ll INF = 2e18;
constexpr ll MOD = 1e9+7;
constexpr ll MOD1 = 998244353;
typedef pair<ll,ll> P;

//#define all(v) (v).begin(), (v).end()
#define rep(i,a,b) for (int i = (a); i < (b); i++)
#define REP(i,n) rep(i,0,n)
#define sz(s) (s).size()
#define pb push_back
#define fi first
#define se second
//#define mp make_pair

int main(){
    string s;
    while (getline(cin,s)) {
        double w = 0;
        int i = 0;
        while (i < sz(s) && s[i] != ' ') {
            w *= 10;
            w += s[i] - '0';
            i++;
        }
        i++;
        vector<double> v;
        while (i < sz(s)) {
            int k = 0;
            while (i < sz(s) && s[i] != ' ') {
                k *= 10;
                k += s[i] - '0';
                i++;
            }
            i++;
            v.pb(k);
        }
        sort(v.begin(),v.end());
        deque<double> dq;
        for (int i = 0; i < sz(v); i++) {
            dq.pb(v[i]);
        }
        deque<double> dq1;
        dq1.pb(dq.back());
        dq.pop_back();
        while (!dq.empty()) {
            bool f2f = 0;
            bool f2b = 0;
            bool b2f = 0;
            bool b2b = 0;
            double front = dq.front();
            double back = dq.back();
            double k = abs(front - dq1.front());
            f2f = 1;
            double kk = abs(front - dq1.back());
            if (kk > k) {
                k = kk;
                f2f = 0;
                f2b = 1;
            }
            kk = abs(back - dq1.front());
            if (kk > k) {
                k = kk;
                f2f = 0;
                f2b = 0;
                b2f = 1;
            }
            kk = abs(back - dq1.back());
            if (kk > k) {
                k = kk;
                f2f = 0;
                f2b = 0;
                b2f = 0;
                b2b = 1;
            }
            if (f2f) {
                dq1.push_front(dq.front());
                dq.pop_front();
            } else if (f2b) {
                dq1.push_back(dq.front());
                dq.pop_front();
            } else if (b2f) {
                dq1.push_front(dq.back());
                dq.pop_back();
            } else if (b2b) {
                dq1.push_back(dq.back());
                dq.pop_back();
            }
        }
        double ans = dq1.front() + dq1.back();
        double before = dq1.front();
        dq1.pop_front();
        while (!dq1.empty()) {
            int tp = dq1.front();
//            cout << before << " ";
            dq1.pop_front();
            ans += 2 * sqrt(before * tp);
            before = tp;
        }
//        cout << before << endl;
        cout << (ans <= w? "OK":"NA") << endl;
    }
}
