#include <iostream>
#include <vector>
//#include <cassert>
using namespace std;
int PR[ 169 ] = { 1 ,2 ,3 ,5 ,7 ,11 ,13 ,17 ,19 ,23 ,29 ,31 ,37 ,41 ,43 ,47 ,53 ,59 ,61 ,67 ,71 ,73 ,79 ,83 ,89 ,97 ,101 ,103 ,107 ,109 ,113 ,127 ,131 ,137 ,139 ,149 ,151 ,157 ,163 ,167 ,173 ,179 ,181 ,191 ,193 ,197 ,199 ,211 ,223 ,227 ,229 ,233 ,239 ,241 ,251 ,257 ,263 ,269 ,271 ,277 ,281 ,283 ,293 ,307 ,311 ,313 ,317 ,331 ,337 ,347 ,349 ,353 ,359 ,367 ,373 ,379 ,383 ,389 ,397 ,401 ,409 ,419 ,421 ,431 ,433 ,439 ,443 ,449 ,457 ,461 ,463 ,467 ,479 ,487 ,491 ,499 ,503 ,509 ,521 ,523 ,541 ,547 ,557 ,563 ,569 ,571 ,577 ,587 ,593 ,599 ,601 ,607 ,613 ,617 ,619 ,631 ,641 ,643 ,647 ,653 ,659 ,661 ,673 ,677 ,683 ,691 ,701 ,709 ,719 ,727 ,733 ,739 ,743 ,751 ,757 ,761 ,769 ,773 ,787 ,797 ,809 ,811 ,821 ,823 ,827 ,829 ,839 ,853 ,857 ,859 ,863 ,877 ,881 ,883 ,887 ,907 ,911 ,919 ,929 ,937 ,941 ,947 ,953 ,967 ,971 ,977 ,983 ,991 ,997 } ;
void exam( )
{
for ( int i= 1 ; i< 169 ; i++ )
{
for ( int t= 2 ; t< PR[ i] ; t++ )
{
if ( PR[ i] % t== 0 )
cout << PR[ i] << "不是質數" << endl;
}
}
}
void ACM406( int N,int C)
{
vector< int > P;
for ( int i= 0 ; PR[ i] <= N && i< 169 ; i++ )
{
P.push_back ( PR[ i] ) ;
}
int K= P.size ( ) ;
int Left_Delete;
bool ALL= false ;
if ( K% 2 == 0 )
{
Left_Delete= ( K- C* 2 ) / 2 ;
if ( C* 2 >= K)
ALL= true ;
} else
{
Left_Delete= ( K+ 1 ) / 2 - C;
if ( C* 2 - 1 >= K)
ALL= true ;
}
if ( ! ALL)
{
for ( int t= 0 ; t< Left_Delete; t++ )
{
P.erase ( P.end ( ) - 1 ) ;
P.erase ( P.begin ( ) ) ;
}
}
for ( size_t i= 0 ; i< P.size ( ) ; i++ )
{
cout << " " << P[ i] ;
}
cout << endl<< endl;
}
int main( )
{
//exam();
//cout<<"Count(PR)="<< sizeof(PR)/ sizeof(int)<<endl;
int N,C;
while ( cin >> N>> C)
{
if ( N>= 1 && N<= 1000 && C>= 1 && C<= N)
{
cout << N<< " " << C<< ':' ;
ACM406( N,C) ;
} else
break ;
}
// getchar();
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgovLyNpbmNsdWRlIDxjYXNzZXJ0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IFBSWzE2OV09ezEsMiwzLDUsNywxMSwxMywxNywxOSwyMywyOSwzMSwzNyw0MSw0Myw0Nyw1Myw1OSw2MSw2Nyw3MSw3Myw3OSw4Myw4OSw5NywxMDEsMTAzLDEwNywxMDksMTEzLDEyNywxMzEsMTM3LDEzOSwxNDksMTUxLDE1NywxNjMsMTY3LDE3MywxNzksMTgxLDE5MSwxOTMsMTk3LDE5OSwyMTEsMjIzLDIyNywyMjksMjMzLDIzOSwyNDEsMjUxLDI1NywyNjMsMjY5LDI3MSwyNzcsMjgxLDI4MywyOTMsMzA3LDMxMSwzMTMsMzE3LDMzMSwzMzcsMzQ3LDM0OSwzNTMsMzU5LDM2NywzNzMsMzc5LDM4MywzODksMzk3LDQwMSw0MDksNDE5LDQyMSw0MzEsNDMzLDQzOSw0NDMsNDQ5LDQ1Nyw0NjEsNDYzLDQ2Nyw0NzksNDg3LDQ5MSw0OTksNTAzLDUwOSw1MjEsNTIzLDU0MSw1NDcsNTU3LDU2Myw1NjksNTcxLDU3Nyw1ODcsNTkzLDU5OSw2MDEsNjA3LDYxMyw2MTcsNjE5LDYzMSw2NDEsNjQzLDY0Nyw2NTMsNjU5LDY2MSw2NzMsNjc3LDY4Myw2OTEsNzAxLDcwOSw3MTksNzI3LDczMyw3MzksNzQzLDc1MSw3NTcsNzYxLDc2OSw3NzMsNzg3LDc5Nyw4MDksODExLDgyMSw4MjMsODI3LDgyOSw4MzksODUzLDg1Nyw4NTksODYzLDg3Nyw4ODEsODgzLDg4Nyw5MDcsOTExLDkxOSw5MjksOTM3LDk0MSw5NDcsOTUzLDk2Nyw5NzEsOTc3LDk4Myw5OTEsOTk3fTsKCnZvaWQgZXhhbSgpCnsKCWZvciAoaW50IGk9MTsgaTwxNjk7IGkrKykKCXsKCQlmb3IgKGludCB0PTI7IHQ8UFJbaV07IHQrKykKCQl7CgkJCWlmIChQUltpXSV0PT0wKQoJCQkJY291dDw8UFJbaV08PCLkuI3mmK/os6rmlbgiPDxlbmRsOwoJCX0KCX0KCn0Kdm9pZCBBQ000MDYoaW50IE4saW50IEMpCnsKCXZlY3RvcjxpbnQ+IFA7Cglmb3IgKGludCBpPTA7IFBSW2ldPD1OICYmIGk8MTY5O2krKykKCXsKCQlQLnB1c2hfYmFjayhQUltpXSk7Cgl9CglpbnQgSz1QLnNpemUoKTsKCWludCBMZWZ0X0RlbGV0ZTsKCWJvb2wgQUxMPWZhbHNlOwoJaWYgKEslMj09MCkKCXsKCQkgTGVmdF9EZWxldGU9IChLLSBDKjIpLzI7CQkKCQkgaWYgKEMqMj49SykKCQkJIEFMTD10cnVlOwoJfWVsc2UgCgl7CgkJIExlZnRfRGVsZXRlPSAoSysxKS8yLUM7CgkJIGlmIChDKjItMT49SykKCQkJIEFMTD10cnVlOwoJfQoJaWYgKCFBTEwpCgl7CgkJZm9yIChpbnQgdD0wOyB0PExlZnRfRGVsZXRlOyB0KyspCgkJewoJCQlQLmVyYXNlKCBQLmVuZCgpLTEpOwoJCQlQLmVyYXNlKCBQLmJlZ2luKCkpOwoJCX0KCX0KCWZvciAoc2l6ZV90IGk9MDsgaTxQLnNpemUoKTsgaSsrKQoJewoJCWNvdXQ8PCIgIjw8UFtpXTsKCX0KCWNvdXQ8PGVuZGw8PGVuZGw7Cn0KaW50IG1haW4oKQp7CgkvL2V4YW0oKTsKCS8vY291dDw8IkNvdW50KFBSKT0iPDwgc2l6ZW9mKFBSKS8gc2l6ZW9mKGludCk8PGVuZGw7CglpbnQgTixDOwoJd2hpbGUoY2luPj5OPj5DKQoJewoJCWlmIChOPj0xICYmIE48PTEwMDAgJiYgQz49MSAmJiBDPD1OKQoJCXsKCQkJY291dDw8Tjw8IiAiPDxDPDwnOic7CgkJCUFDTTQwNihOLEMpOwoJCX1lbHNlCgkJCWJyZWFrOwoJfQovLwlnZXRjaGFyKCk7CglyZXR1cm4gMDsKfQo=