
#!/usr/bin/env python3
import random
import sys
MX = 100000
# Init seed with first argument
ispos = int(sys.argv[1])
random.seed(int(sys.argv[2]))
ISTRANSPOSE = int(sys.argv[3])

M = MX//2
if ispos:
    M-=1
a = []
for i in range(M):
    a.append([i,(i+1)%M])

if ISTRANSPOSE:
    tr = []
    for i,l in enumerate(a):
        for j in l:
            while len(tr)<=j:
                tr.append([])
            tr[j].append(i)
    adj=tr
    adj = [l for l in adj if len(l)>1]
while True:
    vals = [random.randint(1,10**9) for i in range(M)]
    if len(set(vals))!=M:
        continue
    else:
        break
if ispos:
    r = random.randint(0,M-1)
    a[r].append(a[r-1][0])
random.shuffle(a)
print(len(a))
for x in a:
    print(len(x), *[vals[i] for i in x])