Problem Statement 
 A polygon is a figure on a plane bounded by a closed polyline with no selfintersections. A diagonal is a line segment that connects two nonadjacent vertices and lies completely inside the polygon. Every diagonal divides the polygon into two other polygons.
A polygon is called convex if every line segment that connects two nonadjacent vertices is a diagonal. A polygon is called almost convex if it is convex or if there exists a diagonal that divides it into two convex polygons.
You are given a set of points. The coordinates of the ith point are (x[i], y[i]). Return the number of distinct almost convex polygons whose vertices all belong to the given set. 

Definition 
 Class:  AlmostConvexPolygons  Method:  count  Parameters:  int[], int[]  Returns:  int  Method signature:  int count(int[] x, int[] y)  (be sure your method is public) 




Notes 
  The answer will always fit in 32bit signed integer. 

Constraints 
  x will contain between 3 and 15 elements, inclusive. 
  y will contain the same number of elements as x. 
  Each element of x and y will be between 100 and 100, inclusive. 
  No three points from the given set will lie on the same straight line. 

Examples 
0)  
  Returns: 5  We can construct 4 triangles and 1 square. All these polygons are convex and therefore are almost convex. 


1)  
 {2,2,2,2,3}  {2,2,2,2,0} 
 Returns: 16  Point (3, 0) is added to example 0. Now we can construct 10 triangles, 5 quadrangles and 1 pentagon. All of them are still convex. 


2)  
 {2,2,2,2,0}  {2,2,2,2,1} 
 Returns: 22  Point (0, 1) is added to example 0. We can construct 10 triangles, 9 quadrangles and 4 pentagons. All of them are almost convex except one pentagon (2,2)  (0,1)  (2,2)  (2,2)  (2,2)  (2,2). 


3)  
  Returns: 26  Here there are 10 triangles, 13 almost convex quadrangles and 3 almost convex pentagons:
 (0,0)  (2,1)  (5,0)  (0,5)  (1,2)  (0,0);
 (0,0)  (5,0)  (0,5)  (1,2)  (2,1)  (0,0);
 (0,0)  (1,2)  (2,1)  (5,0)  (0,5)  (0,0).


