#include<cstdio> using namespace std; //water //素数打表基操吧, 然后预处理维护一个前缀和就好了 const int N = 1000; bool Prim[N+5]= {0}; int sum[N+5]= {0}; void Print_Prime() { Prim[1] = 0; Prim[0] = 1; for(int i = 2; i<=N; ++i) if(!Prim[i]) for(int j = i*2; j<=N; j+=i) Prim[j] = true; } void Pretreatment() { Print_Prime(); for(int i = 1; i<=N; ++i) { sum[i] = sum[i-1]; if(!Prim[i]) sum[i]++; } } int main() { int n,c; Pretreatment(); while(~scanf("%d%d",&n,&c)) { printf("%d %d:",n,c); c = (sum[n]&1) ? (2*c-1) : (2*c); int i,cnt; for(i = 0,cnt = 0; i<=n; ++i) { if(!Prim[i]) cnt++; if(sum[n]<=c||2*cnt==sum[n]-c) break; } for(i=i+1; i<=n&&c; ++i) if(!Prim[i]) { c--; printf(" %d",i); } printf("\n\n"); } return 0; }