#include <bits/stdc++.h>
#define SSTR( x ) static_cast< std::ostringstream & >( \
( std::ostringstream() << std::dec << x ) ).str()
using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
typedef pair<int,int> ii;
typedef vector<int> vi;
typedef vector<pair<int,int> > vii;
ifstream fi("multimi2.in");
ofstream fo("multimi2.out");
int n,mi = 1000000,nn;
int A[1005];
int main()
{
///cin.tie(0);cout.tie(0);ios::sync_with_stdio(0);
fi>>n;
if(n%4==0){
fo<<"0\n"<<n/2<<"\n";
for(int i=1;i<=n/4;i++)fo<<4*(i-1)+1<<" "<<4*(i-1)+4<<" ";
fo<<"\n"<<n/2<<"\n";
for(int i=1;i<=n/4;i++)fo<<4*(i-1)+2<<" "<<4*(i-1)+3<<" ";
}
if(n%4==1){
fo<<"1\n"<<n/2+1<<"\n1 ";
for(int i=1;i<=n/4;i++)fo<<4*(i-1)+2<<" "<<4*(i-1)+5<<" ";
fo<<"\n"<<n/2<<"\n";
for(int i=1;i<=n/4;i++)fo<<4*(i-1)+3<<" "<<4*(i-1)+4<<" ";
}
if(n%4==2){
fo<<"1\n"<<n/2<<"\n1 ";
for(int i=1;i<=n/4;i++)fo<<4*(i-1)+3<<" "<<4*(i-1)+6<<" ";
fo<<"\n"<<n/2<<"\n2 ";
for(int i=1;i<=n/4;i++)fo<<4*(i-1)+4<<" "<<4*(i-1)+5<<" ";
}
if(n%4==3){
nn=(n/4)*4;
fo<<"0\n"<<nn/2+1<<"\n3 ";
for(int i=2;i<=nn/4+1;i++)fo<<4*(i-1)<<" "<<4*(i-1)+3<<" ";
fo<<"\n"<<nn/2+2<<"\n1 2 ";
for(int i=2;i<=nn/4+1;i++)fo<<4*(i-1)+1<<" "<<4*(i-1)+2<<" ";
}
return 0;
}