#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
using namespace std;
#define MAX_N 12
double dp[MAX_N][1 << MAX_N], p[MAX_N][MAX_N], x[MAX_N]; int N, M, bit[MAX_N]; string S;
int main() {
	while (S = "", getline(cin, S)) {
		S += ' '; string T; int u = 0;
		for (int i = 0; i < S.size(); i++) {
			if (S[i] == ' ') { if (u == 0) { M = stoi(T); } else { x[u - 1] = stoi(T); }u++; T = ""; }
			else { T += S[i]; }
		}
		N = u - 1;
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < N; j++) {
				if (i == j) { continue; }
				p[i][j] = sqrt((x[i] + x[j])*(x[i] + x[j]) - (x[i] - x[j]) * (x[i] - x[j])) - x[i] + x[j];
			}
		}
		for (int i = 0; i < MAX_N; i++) { for (int j = 0; j < (1 << MAX_N); j++) { dp[i][j] = 1e9; } }
		for (int i = 0; i < N; i++) {
			dp[i][1 << i] = x[i] * 2;
		}
		for (int i = 0; i < (1 << N); i++) {
			for (int j = 0; j < N; j++) { bit[j] = (i / (1 << j)) % 2; }
			for (int j = 0; j < N; j++) {
				if (dp[j][i] >= 1e8) { continue; }
				for (int k = 0; k < N; k++) {
					if (bit[k] == 0) {
						dp[k][i + (1 << k)] = min(dp[k][i + (1 << k)], dp[j][i] + p[j][k]);
					}
				}
			}
		}
		double maxn = 1e9;
		for (int i = 0; i < N; i++) { maxn = min(maxn, dp[i][(1 << N) - 1]); }
		if (maxn <= M) { cout << "OK" << endl; }
		else { cout << "NA" << endl; }
	}
	return 0;
}