#include using namespace std; typedef long long ll; typedef vector vi; typedef vector vl; typedef pair pii; typedef pair pll; typedef int _loop_int; #define REP(i,n) for(_loop_int i=0;i<(_loop_int)(n);++i) #define FOR(i,a,b) for(_loop_int i=(_loop_int)(a);i<(_loop_int)(b);++i) #define FORR(i,a,b) for(_loop_int i=(_loop_int)(b)-1;i>=(_loop_int)(a);--i) #define DEBUG(x) cout<<#x<<": "< P; int m; int n; int cup[25]; int main(){ scanf("%d%d",&m,&n); REP(i,n)scanf("%d",cup+i); sort(cup,cup+n); reverse(cup,cup+n); // eratosthenes vector sieve(m+10,true); sieve[0] = sieve[1] = false; REP(i,m+10){ if(!sieve[i])continue; int it = 2*i; while(itm)break; CHMAX(mxcnt[j+c],mxcnt[j]+1); } } // answer int ans = 0; REP(i,m+1){ if(!sieve[i])continue; // i is prime // m-x == i causes chance // x = m-i if(mxcnt[m-i]>0){ ans += mxcnt[m-i]; } } int mx = 0; REP(i,m+1)CHMAX(mx,mxcnt[i]); ans += mx; printf("%d\n",ans); return 0; }