public class Main{
public static void main(String[] args) {
int[] a={1,2,3,4,5,6,7,8,9,11,12,14,16,17,18,19};
f(a,0);
System.out.println("finish!");
}
public static void f(int[] x,int k){
if(k>=x.length){
test(x);
return;
}
for(int i=k;i<x.length;i++){
{int t=x[k];x[k]=x[i];x[i]=t;}
if(k==3){
if(x[0]+x[1]+x[2]+x[3]!=38){
{int t=x[i];x[i]=x[k];x[k]=t;}
continue;
}
}
if(k==8){
if(x[4]+x[5]+x[6]+x[7]+x[8]!=38){
{int t=x[i];x[i]=x[k];x[k]=t;}
continue;
}
}
if(k==12){
if(x[9]+x[10]+x[11]+x[12]!=38){
{int t=x[i];x[i]=x[k];x[k]=t;}
continue;
}
}
if(k==15){
if(x[13]+x[14]+x[15]!=38){
{int t=x[i];x[i]=x[k];x[k]=t;}
continue;
}
}
f(x,k+1);
{int t=x[i];x[i]=x[k];x[k]=t;}
}
}
public static void test(int[] x){
int s1=15+x[0]+x[4];
int s2=13+x[1]+x[5]+x[9];
int s3=10+x[2]+x[6]+x[10]+x[13];
int s4=x[3]+x[7]+x[11]+x[14];
int s5=x[8]+x[12]+x[15];
int s6=10+x[3]+x[8];
int s7=13+x[2]+x[7]+x[12];
int s8=15+x[1]+x[6]+x[11]+x[15];
if(s1==38&&s2==38&&s3==38&&s4==38&&s5==38&&s6==38&&s7==38&&s8==38){
System.out.print("#########");
for(int i=0;i<x.length;i++){
System.out.print(x[i]+" ");
}
System.out.println();
}
}
}