#include<bits/stdc++.h>
using namespace std;

const double EPS=1e-6;

double evaluate(vector<double>&r){
    double res=r[0]+r[r.size()-1];
    for(int i=0;i+1<r.size();i++){
        double h=(r[i]+r[i+1]);
        double s=abs(r[i]-r[i+1]);
        res+=sqrt(h*h-s*s);
    }
    return res;
}

double optimize(vector<double>r){

    if(r.size()<=5){
        sort(r.begin(),r.end());
        double res=evaluate(r);
        do{
            res=min(res,evaluate(r));
        }while(next_permutation(r.begin(),r.end()));
        return res;
    }

    double T=10000;
    double cool=0.99;

    double mi=evaluate(r);

    while(T>0.000001){
        int a,b;
        while(true){
            a=rand()%r.size();
            b=rand()%r.size();
            if(a!=b)break;
        }

        double score=evaluate(r);
        swap(r[a],r[b]);
        double new_score=evaluate(r);

        double p=exp(-abs(new_score-score)/T);

        if(new_score>score || rand()<p*RAND_MAX);
        else{
            swap(r[a],r[b]);
        }

        mi=min(mi,new_score);
        T*=cool;
    }
    return mi;
}

int main(){
    srand((unsigned)time(NULL));
    int l;
    while(cin>>l){
        string str;
        getline(cin,str);
        stringstream ss(str);
        vector<double>r;
        while(!ss.eof()){
            double t;
            ss>>t;
            r.push_back(t);
        }

        if(optimize(r)<l+EPS)puts("OK");
        else puts("NA");
    }

    return 0;
}