#include <iostream>
#include <sstream>
#include <vector>
#include <list>
#include <string>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <algorithm>
#include <numeric>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <climits>
using namespace std;

typedef istringstream ISS;
typedef vector <int> VI;

int calc( int r1, int r2 ) {
    double a = max( r1, r2 ) - min( r1, r2 );
    double b = r1 + r2;
    double c = sqrt( b * b - a * a );
    return b - c;
}

bool solve( int W, VI R ) {
    int n = R.size();
    do {
        int w = 2 * accumulate( R.begin(), R.end(), 0 );
        for ( int i = 0; i + 1 < n; ++ i ) {
            w -= calc( R[i], R[i+1] );
        }
        if ( w <= W ) return true;
    } while ( next_permutation( R.begin(), R.end() ) );
    return false;
}

int main() {
    string line;
    while ( getline( cin, line ) ) {
        ISS iss1( line );
        int w;
        iss1 >> w;
        VI R;
        int r;
        while ( iss1 >> r ) R.push_back( r );
        sort( R.begin(), R.end() );
        cout << ( solve( w, R ) ? "OK" : "NA" ) << endl;
    }
    return 0;
}