#include<bits/stdc++.h>
using namespace std;
char in[100], out[100];

int main(){
	for(int I=1;I<=20;I++){
		int n, m, i, a;
		queue <int> q[110];
		//scanf("%d %d", &n, &m);
		sprintf(in,".%d.in",I);
	    freopen(in,"w",stdout);
		n = I * 5;
		m = I + 1;
		m = min(m,20);
		printf("%d\n%d\n",n,m);
		for(i=1;i<=n;i++){
			//scanf("%d", &a);
			a = rand()%m+1;
			printf("%d",a);
			if(i==n) printf("\n");
			else printf(" ");
			q[a].push(i);
		}
		sprintf(in,".%d.out",I);
	    freopen(in,"w",stdout);
		for(i=1;i<=m;i++){
			printf("%d ", q[i].size());
			while(!q[i].empty()){
				printf("%d ", q[i].front());
				q[i].pop();
			}
			printf("\n");
		}
	}
}
