Defense Against Wolves

Time Limit: 3500ms
Memory Limit: 65536KB
This problem will be judged on HDU. Original ID: 5028
64-bit integer IO format: %I64d      Java class name: Main

Description

Long long ago, there lived a lot of rabbits in the forest. Unfortunately, there were some wolves in the same forest. The rabbit kingdom was attacked by those wolves sometimes and they planned to defend against the wolves.

For each wolves' attack, the rabbit king would choose some rabbits(at least four rabbits) to make a defense team. We can regard each rabbit as a point in the three dimensional space. In the kingdom, there were no four rabbits stayed on a same plane.

During each attack, the number of wolves which would be killed was exactly equal to the number of rabbits which are ON the 3D convex hull of the defense team.

All defense teams should be different. But two different teams might share some rabbits. If the rabbit king couldn't choose a defense team any more, the rabbit kingdom would be destroyed.

Now the wolves want to calculate the number of wolves which would be killed if they wanted to destroy the rabbit kingdom.

Input

The input consists at most 50 test cases.

For each test case, the first line contains a integer n (4 <=n <= 50) denoting the number of rabbits.

The following n lines each contains three integers x, y, z (-1000 <= x, y, z <= 1000) denoting the coordinate of a rabbit. All rabbits' positions are different.

Output

For each test case, output one line containing the answer modulo 109+7.

Sample Input

4
0 0 0
1 0 0
0 1 0
0 0 1
5
0 0 0
10 0 0
0 10 0
0 0 10
3 3 3

Sample Output

4
24

Source

Language: 
Theme: 
Share Code? 

Powered by NB231 | Current Style: .