#include <bits/stdc++.h>
using namespace std;
long long int A[30] ,n;
map <long long int, long long int> M;
char in[100], out[100];
void f(long long int a, long long int b){
	if(a==n+1){
		M[b]++;
		return;
	}
	f(a+1, b+A[a]);
	f(a+1, b);
	return ;
}
int main(){
    for(int I=16;I<=30;I++){
        long long int a, b,i;
        M.clear();
        sprintf(in,".%d.in",I);
	    freopen(in,"w",stdout);
        n = 20;
        //cin >> n;
        cout <<n <<endl;
        for(i=1;i<=n;i++){
            //cin >> A[i];
            A[i] = (rand()*1000000+rand()*1000+rand())%100000000;
            if(A[i]<0) A[i] *= (-1);
            if(A[i]==0) A[i] = 1;
            cout << A[i] <<" ";
        }
        f(1,0);
        a = 0;
        b = 0;
        for(auto x:M){
            if(x.second>a){
                a = x.second;
                b = x.first;
            }
        }
        sprintf(out,".%d.out",I);
	    freopen(out,"w",stdout);
        cout<< a <<"\n";
        for(auto x : M) {
            if(a == x.second) cout << x.first <<" ";
        }
        if(a==1) I--;
    }
}
