import java.awt.geom.Line2D; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.Comparator; import java.util.NoSuchElementException; import java.util.Random; public class Main { public static void main(String[] args) { new Main().run(); } final long MOD=(long)1e9+7; long pow(long a,long n) { return n!=0?pow(a*a%MOD,n/2)*(n%2==1?a:1)%MOD:1; } long inv(long a) { return pow(a,MOD-2); } long ADD(long a,long b) { long ret=a+b; if (ret<0) ret+=MOD; return ret=0 && x> 0) return 0; if (y> 0 && x<=0) return 1; if (y<=0 && x< 0) return 2; if (y< 0 && x>=0) return 3; throw new AssertionError(); } void run() { FastScanner sc=new FastScanner(); int n=sc.nextInt(); long[][] a=new long[n][2]; for (int i=0;i() { @Override public int compare(long[] o1, long[] o2) { if (quadrant(o1[0], o1[1])==quadrant(o2[0], o2[1])) { return Line2D.relativeCCW(0, 0, o1[0], o1[1], o2[0], o2[1]); } else { return Integer.compare(quadrant(o1[0], o1[1]), quadrant(o2[0], o2[1])); } } }); for (int j=1;j<=2*p.length;++j) { sumx[j]=ADD(p[(j-1)%sz][0],sumx[j-1]); sumy[j]=ADD(p[(j-1)%sz][1],sumy[j-1]); } int t=0; for (int j=0;j