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
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int INF=0x3f3f3f3f;
const int N = 210;
struct node
{
    int x ,y;
    node(){}
    node(int x1 ,int y1):x(x1),y(y1){}
    bool operator < (const node &a)const{
        if(x!=a.x)
            return x < a.x;
        else
            return y < a.y;
    }
}point[N];
struct Line
{
    node p1 , p2;
    Line(){}
    Line(node x , node y):p1(x),p2(y){}
}line[N];

bool judge(Line L1 , Line L2)
{
    int x1 , y1 , x2 , y2;
    x1=L1.p2.x - L1.p1.x;
    y1=L1.p2.y - L1.p1.y;
    x2=L2.p2.x - L2.p1.x;
    y2=L2.p2.y - L2.p1.y;
    ///cout<<x1*y2-y1*x2<<endl;
    if(x1 * y2 - y1*x2 >= 0)
        return true;
    else
        return false;
}

int main()
{
    int n;
    while(scanf("%d", &n)!=EOF){
        int x , y;
        for(int i=1;i<=n;i++){
            scanf("%d%d", &x, &y);
            point[i]=node(x , y);
        }
        int m = 0;
        for(int i=1;i<=n;i++){
            if(i==n)
                line[m++]=Line(point[n] , point[1]);
            else
                line[m++]=Line(point[i] , point[i+1]);
        }
        bool p=true;
        for(int i=0;i<m;i++){
            if(i==m-1){
                if(!judge(line[i] , line[0])){
                    p=false;
                    break;
                }
            }
            else if(!judge(line[i] , line[i+1])){
                p=false;
                break;
            }
        }
        printf("%d\n",p ? 1 : 0);
    }
    return 0;
}


