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

constexpr int MAX = 1000001;

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