#include <stdio.h>
FILE *input = fopen("/var/www/bbs/prob/1349/input.txt","r");
FILE *output = fopen("/var/www/bbs/prob/1349/output.txt","r");
struct Point{
	int x0;
	int y0;
}x[2010];
int y[2010], check[2010];
bool CCW(Point A, Point B, Point C)
{
	long long int s1 = (long long int)A.x0 * B.y0 + (long long int)B.x0 * C.y0 + (long long int)C.x0 * A.y0;
	long long int s2 = (long long int)A.y0 * B.x0 + (long long int)B.y0 * C.x0 + (long long int)C.y0 * A.x0;
	if(s1<s2) return true;
	else return false;
}
int main()
{
	int a,b,c,i;
	fscanf(input,"%d",&a);
	for(i=1;i<=a;i++)
	{
		fscanf(input,"%d %d",&b,&c);
		x[i]=(Point){b,c};
	}
	fscanf(output,"%d",&b);
	for(i=1;i<=b;i++) fscanf(output,"%d",&y[i]);
	if(a!=b)
	{
		printf("0");
		return 0;
	}
        for( i = 1 ; i <= b ; i++ ) 	
        {
           if(y[i]<=0 || y[i] > a )
           {
               puts("0"); return 0;
           }
           if(check[y[i]])
           {
               puts("0"); return 0;
           }
           check[y[i]]=1;
        }
        for(i=1;i+2<=a;i++)
	{
		if(!CCW(x[y[i]],x[y[i+1]],x[y[i+2]]))
		{
			printf("0");
			return 0;
		}
	}
	printf("1");
	return 0;
}
