// File: /workspace/github_c_makefile_star2_O0/aligrudi[P]gpss/datgen.c
// Function: main
int main(int argc, char *argv[])
{
	int i, j;
	int pt;
	if (input(stdin))
		return 1;
	for (j = 0; j < pt_n; j++)
		pt_sorted[j] = j;
	pt = lowerleft();
	for (i = 0; i < pt_n - pt_min + 1; i++) {
		int cur = 1;
		sortpoints(pt);
		pt_mark[pt] = 1;
		while (cur < pt_n) {
			int beg = cur;
			int good = 1;
			while (cur < pt_n && collinear(pt, pt_sorted[beg], pt_sorted[cur]))
				cur++;
			if (cur - beg + 1 < pt_min)
				continue;
			for (j = beg; good && j < cur; j++)
				if (pt_mark[pt_sorted[j]])
					good = 0;
			if (good && cur - beg + 1 >= pt_min)
				line_add(pt, cur - beg, pt_sorted + beg);
		}
		pt = closestunmarked(pt);
	}
	printf("%d\n", ln_n);
	for (i = 0; i < ln_n; i++) {
		printf("%d", ln_cnt[i]);
		for (j = 0; j < ln_cnt[i]; j++)
			printf(" %d", ln[i][j]);
		printf("\n");
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq 0x2e53(%rip), %rax      # 0x3fe0
movq (%rax), %rdi
callq 0x1410
cmpl $0x0, %eax
je 0x11a6
movl $0x1, -0x4(%rbp)
jmp 0x13f8
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
cmpl 0x2eaa(%rip), %eax      # 0x4060
jge 0x11d4
movl -0x18(%rbp), %edx
movslq -0x18(%rbp), %rcx
leaq 0x2eaa(%rip), %rax      # 0x4070
movl %edx, (%rax,%rcx,4)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x11ad
callq 0x14c0
movl %eax, -0x1c(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movl 0x2e74(%rip), %ecx      # 0x4060
subl 0x2e56(%rip), %ecx      # 0x4048
addl $0x1, %ecx
cmpl %ecx, %eax
jge 0x1346
movl $0x1, -0x20(%rbp)
movl -0x1c(%rbp), %edi
callq 0x1550
movslq -0x1c(%rbp), %rcx
leaq 0xca99(%rip), %rax      # 0xdcb0
movb $0x1, (%rax,%rcx)
movl -0x20(%rbp), %eax
cmpl 0x2e3c(%rip), %eax      # 0x4060
jge 0x132d
movl -0x20(%rbp), %eax
movl %eax, -0x24(%rbp)
movl $0x1, -0x28(%rbp)
movl -0x20(%rbp), %ecx
xorl %eax, %eax
cmpl 0x2e1e(%rip), %ecx      # 0x4060
movb %al, -0x29(%rbp)
jge 0x1274
movl -0x1c(%rbp), %edi
movslq -0x24(%rbp), %rcx
leaq 0x2e1b(%rip), %rax      # 0x4070
movl (%rax,%rcx,4), %esi
movslq -0x20(%rbp), %rcx
leaq 0x2e0d(%rip), %rax      # 0x4070
movl (%rax,%rcx,4), %edx
callq 0x16c0
cmpl $0x0, %eax
setne %al
movb %al, -0x29(%rbp)
movb -0x29(%rbp), %al
testb $0x1, %al
jne 0x127d
jmp 0x1288
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x1237
movl -0x20(%rbp), %eax
subl -0x24(%rbp), %eax
addl $0x1, %eax
cmpl 0x2db1(%rip), %eax      # 0x4048
jge 0x129b
jmp 0x121b
movl -0x24(%rbp), %eax
movl %eax, -0x18(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x28(%rbp)
movb %al, -0x2a(%rbp)
je 0x12b8
movl -0x18(%rbp), %eax
cmpl -0x20(%rbp), %eax
setl %al
movb %al, -0x2a(%rbp)
movb -0x2a(%rbp), %al
testb $0x1, %al
jne 0x12c1
jmp 0x12f1
movslq -0x18(%rbp), %rcx
leaq 0x2da4(%rip), %rax      # 0x4070
movslq (%rax,%rcx,4), %rcx
leaq 0xc9d9(%rip), %rax      # 0xdcb0
cmpb $0x0, (%rax,%rcx)
je 0x12e4
movl $0x0, -0x28(%rbp)
jmp 0x12e6
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x12a1
cmpl $0x0, -0x28(%rbp)
je 0x1328
movl -0x20(%rbp), %eax
subl -0x24(%rbp), %eax
addl $0x1, %eax
cmpl 0x2d42(%rip), %eax      # 0x4048
jl 0x1328
movl -0x1c(%rbp), %edi
movl -0x20(%rbp), %esi
subl -0x24(%rbp), %esi
movslq -0x24(%rbp), %rax
leaq 0x2d54(%rip), %rdx      # 0x4070
shlq $0x2, %rax
addq %rax, %rdx
callq 0x1760
jmp 0x121b
movl -0x1c(%rbp), %edi
callq 0x1810
movl %eax, -0x1c(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x11e3
movl 0xf074(%rip), %esi      # 0x103c0
leaq 0xcb1(%rip), %rdi       # 0x2004
movb $0x0, %al
callq 0x1040
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl 0xf056(%rip), %eax      # 0x103c0
jge 0x13f1
movslq -0x14(%rbp), %rcx
leaq 0xf055(%rip), %rax      # 0x103d0
movl (%rax,%rcx,4), %esi
leaq 0xc86(%rip), %rdi       # 0x200b
movb $0x0, %al
callq 0x1040
movl $0x0, -0x18(%rbp)
movl -0x18(%rbp), %eax
movslq -0x14(%rbp), %rdx
leaq 0xf02f(%rip), %rcx      # 0x103d0
cmpl (%rcx,%rdx,4), %eax
jge 0x13d5
movslq -0x14(%rbp), %rcx
leaq 0x3df91f(%rip), %rax    # 0x3e0cd0
movq (%rax,%rcx,8), %rax
movslq -0x18(%rbp), %rcx
movl (%rax,%rcx,4), %esi
leaq 0xc47(%rip), %rdi       # 0x200a
movb $0x0, %al
callq 0x1040
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x1393
leaq 0xc2a(%rip), %rdi       # 0x2006
movb $0x0, %al
callq 0x1040
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x1361
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)