#include<bits/stdc++.h>
using namespace std;

char in[100], out[100];
long long int A[10010], B[10010];

int main(){
    int n, m, i, j,a;
	for(int I = 1; I<=20; I++){
		sprintf(in,".%d.in",I);
        freopen(in,"w",stdout);
        memset(B,0,sizeof(B));
        memset(A,0,sizeof(A));
       	//scanf("%d %d", &n, &m);
		n = 50 * I;
		m = 500 * I;
		A[0]=1;
		printf("%d %d\n", n, m);
		for(i=1;i<=n;i++){
			//scanf("%d", &a);
			a = rand()%100+1;
			printf("%d",a);
			if(i<n) printf(" ");
			for(j=1;j<=m;j++){
				if(j-a>=0) B[j] = (B[j]+A[j-a])%1000000007; 
			}
			for(j=1;j<=m;j++){
				A[j] = (B[j]+A[j])%1000000007; 
				B[j] = 0; 
			}	
		}
		sprintf(in,".%d.out",I);
        freopen(in,"w",stdout);
    	printf("%lld", A[m]);
	}
}

