#define _USE_MATH_DEFINES #include //string stream its useful! #include #include #include //pair #include // vector #include // swap,sort,binary_search #include // std::greater #include //map #include //set #include //queue #include //list #include #include #include #include //cout< vector makesosuarray(){ vector ve(T,1); int k = ceil(sqrt(T)); for(int j = 2; j < k;j++){ if(ve[j] == 0) continue; for(int l = j*2; l<=T;l+=j) ve[l] = 0; } ve[0] = 0; ve[1] = 0; return ve; } vector sosu = makesosuarray<10000>(); int main(){ omajinai(); int m,n; cin>>m>>n; vector c(n); for_each(c.begin(),c.end(),[](int &c){cin>>c;}); vector l(m+1,-1); l[m] = 0; for(int t: c){ for(int i = m-t;i>=0;i--) if(l[i+t]!=-1)l[i] = max(l[i],l[i+t] + 1); } ll ans = 0; for(int i = 0 ; i<=m;i++) if(sosu[i] ==1) ans+=max(0,l[i]); ans += *max_element(l.begin(),l.end()); cout<