#include<iostream>
#include<cstring>
#define SIZE 1000001
using namespace std;

int data[99];
bool p[SIZE];
int n, x;
int memo[SIZE];

void prime(){

  for(int i=2;i*i<SIZE;i++){
    if(!p[i]) for(int j=i+i;j<SIZE;j+=i) p[j] = true;
  }

}

int solve(int s){

  if(s > x) return 0;
  if(memo[s]) return memo[s];

  for(int i=0;i<n;i++) solve(s+data[i]);
  
  return memo[s] = s;
}
int main(){

  prime();

  while(true){
    cin >> n >> x;
    if(!n && !x) break;

    for(int i=0;i<n;i++) cin >> data[i];

    memset(memo, 0, sizeof(memo));

    solve(0);

    int ans = 0;
    for(int i=x;i>0;i--){
      if(!p[i] && memo[i] > 0){
	ans = i;
	break;
      }
    }

    if(ans) cout << ans << endl;
    else cout << "NA\n";

  }
}