#include <stdio.h>


int *ms;
int n, m;

int *dp;

int search(int m){
	if(m == 0) return 1;
	else if(m < 0) return 0;
	else if(dp[m]!=-1) return dp[m];

	for(int i=0;i<n;i++){
		if(search(m-ms[i])) return dp[m] = 1;
	}
	
	return dp[m]=0;
}

int isprime(int p){
	if(p%2==0) return 0;
	for(int i=3;i*i<p;i++){
		if(p%i==0) return 0;
	}
	return 1;
}

int main(){
	while(1){
		scanf("%d%d", &n,&m);
		
		if(n==0) break;
		
		int i;
		dp = new int[m+1];
		for(i=0;i<m+1;i++) dp[i]=-1;
		
		ms = new int[n];
		for(i=0;i<n;i++) scanf("%d", ms+i);
		
		int flag = 1;
		for(i=m;i>=0;i--){
			if(search(i) && isprime(i)){
				printf("%d\n", i);
				flag = 0;
				break;
			}
		}
		if(flag) puts("NA");
	}
}