D :: Areas

Time Limit: 2 Seconds    Memory Limit: 65536 KB
Special Judge

Consider N different lines on the plane. They divide it to several parts, some of which are finite, some infinite.

Your task in this problem is for each finite part to find its area.

This problem contains multiple test cases!

 

The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.

The output format consists of N output blocks. There is a blank line between output blocks.

Input

The first line of the input file contains N the number of lines (1 <= N <= 80). Each of next N lines contains four integer numbers x1, y1, x2 and y2 - the coordinates of two different points of the line.

All coordinates do not exceed 102 by their absolute value.

No two lines coincide.

Output

First output K - the number of finite parts among those the lines divide the plane to.

Next K lines of the output file must contain area parts sorted in non-decreasing order. You answer must be accurate up to 10-4.

Due to floating point precision losses possible, do not consider parts with area not exceeding 10-8.

Sample Input

1

5
0 0 1 0
1 0 1 1
1 1 0 1
0 1 0 0
0 0 1 1

Sample Output

2
0.5000
0.5000
Submit