#include <iostream>
#include <cstring>
#define MAX 1000000
using namespace std;

int n,x,d[31];
bool p[MAX+1],dp[MAX+1];

void isPrime(){
   memset(p,1,sizeof(p));
   p[0] = p[1] = false;
   for(int i=2;i*i<=MAX;i++){
      for(int j=i+i;j<=MAX;j+=i)
         p[j] = false;
   }
}

void rec(int sum){
   if(dp[sum]) return;
   dp[sum] = true;
    for(int i=0;i<n;i++){
      if(sum + d[i] > x) return;
      rec(sum + d[i]);
   }
}

int main(){
   isPrime();
   bool ju;
   while(cin >> n >> x,n||x){
      for(int i=0;i<n;i++) cin >> d[i];
      memset(dp,0,sizeof(dp)); ju = false;
      rec(0);
      for(int i=x;i>0;i--){
         if(dp[i] && p[i]){ cout << i << endl; ju = true; break; }
      }
      if(!ju) cout << "NA" << endl;
   }
}