#include <bits/stdc++.h>
using namespace std;
#define int long long

bool is_prime(int n) {
    if (n==1) {
        return false;
    }
    
    for (int i=2; i*i<=n; i++) {
        if (n%i==0) {
            return false;
        }
    }
    
    return true;
}

signed main() {
    while (true) {
        int n, x;
        cin >> n >> x;
    
        if (n==0 && x==0) {
            break;
        }
        
        vector<int> v;
        
        for (int i=0; i<n; i++) {
            int vi;
            cin >> vi;
            
            while (vi<=x) {
                v.push_back(vi);
                vi *= 2;
            }
        }
        
        int dp[x+1];
        
        for (int i=0; i<=x; i++) {
            dp[i] = 0;
        }
        
        dp[0] = 1;
        
        for (int i=0; i<v.size(); i++) {
            for (int j=0; j<=x; j++) {
                if (dp[j]==1 && j+v[i]<=x) {
                    dp[j+v[i]] = 1;
                }
            }
        }
        
        bool flag = true;
        
        for (int i=x; i>=1; i--) {
            if ((i==1 && dp[i]==1) || (dp[i]==1 && is_prime(i))) {
                cout << i << endl;
                flag = false;
                break;
            }
        }
        
        if (flag) {
            cout << "NA" << endl;
        }
    }
}
