For a given polygon g, print "1" if g is a convex polygon, "0" otherwise. Here, in a convex polygon, all interior angles are less than or equal to 180 degrees.

g is represented by a sequence of points p1, p2,..., pn where line segments connecting pi and pi+1 (1 ≤ i ≤ n-1) are sides of the polygon. The line segment connecting pn and p1 is also a side of the polygon.

Constraints

* 3 ≤ n ≤ 100
* -10000 ≤ xi, yi ≤ 10000
* No point of the polygon will occur more than once.
* Two sides of the polygon can intersect only at a common endpoint.

Input

g is given by coordinates of the points p1,..., pn in the following format:


n
x1 y1
x2 y2
:
xn yn


The first integer n is the number of points. The coordinate of a point pi is given by two integers xi and yi. The coordinates of points are given in the order of counter-clockwise visit of them.

Output

Print "1" or "0" in a line.

Examples

Input

4
0 0
3 1
2 3
0 3


Output

1


Input

5
0 0
2 0
1 1
2 2
0 2


Output

0
import java.util.*;
import java.io.*;
import java.lang.*;

public class Main {
	
	static int INF = 1000000000;
	static int MAXN = 31;
	
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		int[][] point = new int[n][2];
		for (int i = 0; i < n; ++i) {
			point[i][0] = input.nextInt();
			point[i][1] = input.nextInt();
		}
		boolean ok = true;
		for (int i = 1; i < n - 2; ++i) {
			int ccw1 = ccw(point[i - 1], point[i], point[i + 1]);
			int ccw2 = ccw(point[i], point[i + 1], point[i + 2]);
			if (ccw1 * ccw2 < 0) {
				ok = false;
				break;
			}
		}
		int ccw1 = ccw(point[n - 2], point[n - 1], point[0]);
		int ccw2 = ccw(point[n - 1], point[0], point[1]);
		if (ccw1 * ccw2 < 0) {
			ok = false;
		}
		if (ok) System.out.println(1);
		else System.out.println(0);
	}
	
	static int ccw(int[] p1, int[] p2, int[] p3) {
		int a1, b1;
		int a2, b2;
		a1 = p2[0] - p1[0];
		b1 = p2[1] - p1[1];
		a2 = p3[0] - p2[0];
		b2 = p3[1] - p2[1];
		return a1 * b2 - a2 * b1;
	}
}