#include<iostream>
#include<vector>

using namespace std;

vector<int> budget;
int price[30];
int max_budget;
int n;

void serch(int s_price)
{
	if(s_price>max_budget)
		return ;
	
	if(budget[s_price]==1)
	{
		budget[s_price]=2;
//		cout << "s_prime:" << s_price << endl;
	}
	else
		budget[s_price]=3;
	
	for(int i=0;i<n;i++)
	{
		if(budget[s_price+price[i]]==0 || budget[s_price+price[i]]==1)
			serch(s_price+price[i]);
//		else
//			return ;
	}
}

int main()
{
	int i;
	
	for(;;)
	{
		cin >> n >> max_budget ;
		if(n==0 && max_budget==0)
			break;
		
		int ans=0;
		budget.clear();
		
		for(i=0;i<1000001;i++)
			budget.push_back(1);
		
		budget[0]=budget[1]=0;
		
		for(i=0;i<1000001;i++)
		{
			if(budget[i]==1)
			{
				for(int j=2;i*j<1000001;j++)
				{
					budget[i*j]=0;
				}
			}
		}
		
/*		for(i=0;i<1000001;i++)
		{
			if(budget[i]==1)
				cout << "prime:" << i << endl;
		}
*/		
		for(i=0;i<n;i++)
			cin >> price[i] ;
		
		for(i=0;i<n;i++)
			serch(price[i]);
		
		for(i=max_budget;i>=0;i--)
		{
			if(budget[i]==2)
			{
				ans=1;
				cout << i << endl;
				break;
			}
		}
		
		if(ans==0)
			cout << "NA" << endl;
	}
}