#include<stdio.h>
#define M 4000
int n,a[M];
double x[M][2],l[M][4];
int lr(double x,double y, double x1,double y1,double x2,double y2)
{
	if((x2-x1)*(y-y1)-(x-x1)*(y2-y1)>0) return 1;
	return 0;
}
int cross(int l1,int l2)
{
	double x,p,q,r,s;
	if((lr(l[l2][0],l[l2][1],l[l1][0],l[l1][1],l[l1][2],l[l1][3])+lr(l[l2][2],l[l2][3],l[l1][0],l[l1][1],l[l1][2],l[l1][3]))%2)
	{
		p=(l[l1][3]-l[l1][1])/(l[l1][2]-l[l1][0]);
		q=(l[l1][1]*l[l1][2]-l[l1][3]*l[l1][0])/(l[l1][2]-l[l1][0]);
		r=(l[l2][3]-l[l2][1])/(l[l2][2]-l[l2][0]);
		s=(l[l2][1]*l[l2][2]-l[l2][3]*l[l2][0])/(l[l2][2]-l[l2][0]);
		x=(s-q)/(p-r);
		if((x-l[l1][0])*(x-l[l1][2])<0&&(x-l[l2][0])*(x-l[l2][2])<0)
		{
			return 1;
		}
	}
	return 0;
}
int main(int argc, char *argv[])
{
	int i,j;
	FILE *inn = fopen(argv[1], "r");
	FILE *in = fopen(argv[2], "r");
	fscanf(inn,"%d",&n);
	for(i=0;i<=n;i++) fscanf(inn,"%lf %lf",&x[i][0],&x[i][1]);
	for(i=1;i<=n;i++) 
	{
		fscanf(in, "%d",&a[i]);
		l[i-1][0]=x[a[i-1]][0];
		l[i-1][1]=x[a[i-1]][1];
		l[i-1][2]=x[a[i]][0];
		l[i-1][3]=x[a[i]][1];
	}
	l[n][0]=x[a[n]][0];
	l[n][1]=x[a[n]][1];
	l[n][2]=x[0][0];
	l[n][3]=x[0][1];
	for(i=0;i<=n-2;i++)
	{
		for(j=i+2;j<=n;j++)
		{
	if(i==28&&j==34)
	{
		n=n;
	}
			if(cross(i,j)) 
			{
				if(i==0&&j==n) continue;
				printf("0");
				return 0;
			}
		}
	}
	printf("1");
	return 0;
}
