// AOJ 0202
#include<iostream>
#include<cstring>

int ps[30];
bool dp[1000001];

bool isprime( int n )
{
	for( int i = 2; i * i <= n; ++i )
		if( n % i == 0 )
			return false;

	return n != 1;
}

int main()
{
	int n, x;
	while( std::cin >> n >> x, n | x )
	{
		memset( dp, false, sizeof( dp ) );
		dp[0] = true;

		int ans = 0;
		for( int i = 0; i != n; ++i )
		{
			int p;
			std::cin >> p;

			for( int j = p; j <= x; ++j )
			{
				if( dp[j-p] )
				{
					dp[j] = true;
					if( isprime( j ) )
						ans = std::max( ans, j );
				}
			}
		}

		if( ans )
			std::cout << ans << std::endl;
		else
			std::cout << "NA" << std::endl;
	}

	return 0;
}