#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define fr first
#define sc second
typedef pair<int, int> Pii;
typedef vector<int> Vi;
const int INF = (1<<25);
const int dx[]={1,0,-1,0}, dy[]={0,-1,0,1};

double data[11][11];
double dp[1 << 12][12];

int main() {
  for(int i=3; i<=10; i++) {
    for(int j=3; j<=10; j++) {
      data[i][j] = sqrt((double)((j+i)*(j+i)-(j-i)*(j-i)));
    }
  }

  int len;
  while( cin >> len ) {
    string s;
    getline(cin, s);

    Vi cur;
    stringstream ss( s );
    while( !ss.eof() ) {
      int r;
      ss >> r;
      cur.pb( r );
    }

    int n = cur.size();

    for(int i=0; i<(1<<12); i++) {
      fill(dp[i], dp[i]+12, INF);
    }

    for(int i=0; i<cur.size(); i++) {
      dp[1<<i][i] = cur[i];
    }

    for(int i=0; i<(1<<n); i++) {
      for(int j=0; j<n; j++) {
	if( dp[i][j] != INF ) {
	  for(int k=0; k<n; k++) {
	    if( k == j ) continue;
	    if( !(i & (1 << k)) ) {
	      if( (i|(1<<k))  == ((1<<n)-1) )  {
		dp[i|(1<<k)][k] = min(dp[i|(1<<k)][k], dp[i][j]+data[cur[k]][cur[j]]+cur[k]);
	      }
	      else {
		dp[i|(1<<k)][k] = min(dp[i|(1<<k)][k], dp[i][j]+data[cur[k]][cur[j]]);
	      }
	    }
	  }
	}
      }
    }

    bool flag = false;
    for(int i=0; i<n; i++) {
      if( dp[(1<<n)-1][i] <= len ) flag = true;
    }

    if( flag ) cout << "OK" << endl;
    else cout << "NA" << endl;
  }
}