#include<iostream>
#include<cstring>
#include<cstdio>
#include<vector>
#include<cmath>
#include<queue>
#include<ctime>
#include<map>
#define _rep(i,a,b) for(int i=(a);i<=(b);i++)
using namespace std;
template<typename Tp>
inline void Rd(Tp &x){
	int f=1;char ch=getchar();
	x=0;
	while(ch<'0' || ch>'9'){
		if(ch=='-') f=-1;
		ch=getchar();
	}
	while('0'<=ch && ch<='9') x=x*10+ch-'0', ch=getchar();
}
int cnt[10],a[10000];
int main(){
	srand((unsigned long long)new char*);
	int n=20,kind=5;
	_rep(i,1,n){
		int t=rand()%kind+1;
		while(t==a[i-1]) t=rand()%kind+1;
		a[i]=t,cnt[t]^=1;
	}
	_rep(i,1,kind) if(cnt[i]) a[++n]=i;
	printf("1\n2 %d 3\n",n);
	_rep(i,1,n) printf("%d ",a[i]);
	return 0;
}
