#include <iostream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <sstream>
using namespace std;
const double EPS = 1e-10;
const double INF = 1e10;

int main(){
    string s;
    while(getline(cin, s)){
        stringstream buf(s);
        double w;
        buf >> w;
        vector<double> r;
        double in;
        while(buf >> in){
            r.push_back(in);
        }
        int n = r.size();

        vector<vector<double> > dp(n, vector<double>(1<<n, INF));
        for(int i=0; i<n; i++){
            dp[i][1<<i] = r[i];
        }
        for(int i=0; i<(1<<n); i++){
            for(int j=0; j<n; j++){
                if((1<<j & i) == 0) continue;
                for(int k=0; k<n; k++){
                    if((1<<k & i) != 0) continue;
                    double x = sqrt((r[j]+r[k]) *(r[j]+r[k]) - (r[j]-r[k]) *(r[j]-r[k]));
                    dp[k][i | 1<<k] = min(dp[k][i | 1<<k], dp[j][i] +x);
                }
            }
        }

        double MIN = INF;
        for(int i=0; i<n; i++){
            MIN = min(MIN, dp[i][(1<<n)-1] +r[i]);
        }
        if(MIN < w +EPS){
            cout << "OK" << endl;
        }else{
            cout << "NA" << endl;
        }
    }
    return 0;
}

