http://acm.hdu.edu.cn/showproblem.php?pid=1016
//1276949 2009-04-16 16:47:42 Accepted 1016 484MS 268K 918 B C++ no way 
#include<iostream>
using namespace std;
int n,t;
int prime[38= {0,0,2,3,0,5,0,7,0,0,0,11,0,13,0,0,0,17,0,19,0,0,0,23,0,0,0,0,0,29,0,31,0,0,0,0,0,37};
bool used[20];//标记i是否用过
int pre_num[20];
void dfs(int v,int num)
{
    
int i;
    
if(num == n)
    
{    
        
if(prime[v+1!=0 )
        
{
            cout
<<"1";
            
for(i=2;i<t;i++)
                cout
<<" "<<pre_num[i];
            cout
<<endl;
        }

        
return ;
    }

    
else
    
{
        
for(i=1;i<=n;i++)
        
{
            
if(used[i] == false && prime[i+v] != 0 )
            
{
                used[i] 
= true;
                pre_num[t
++= i;
                dfs(i,num
+1);
                used[i] 
= false;
                t
--;
            }

        }

    }

}

int main()
{
    
int i,cas=1;
    
while(cin>>n)
    
{
        
        cout
<<"Case "<<cas++<<":"<<endl;

        
for(i=1;i<=n;i++)
            used[i] 
= false;
        used[
1= true;
        t 
= 1;
        pre_num[t
++]=1;
        dfs(
1,1);

        cout
<<endl;
    }

    
return 0;
}