#include #include #include int i,j,k,m,n,N,sum,side,tot; int s[30]; char d[32*1024*1024]; int doit(int n, int sum, int mask) { int i,j,k; if (d[mask]) return 0; if (sum > side) return 0; if (sum == side) sum = 0; if (n == m && !sum) return 1; d[mask] = 1; for (i=0;i