#include<stdio.h>
#include<algorithm>
#include<stack>
#include<stdlib.h>
using namespace std;
char str[100][21];
int l[100];
int r[100];
struct wolf{
	int c[256];
	wolf(){
		for(int i=0;i<256;i++)c[i]=0;
	}
};
char p[100][21];
int main(){
	int a;
	scanf("%d",&a);
	for(int i=0;i<a;i++){
		scanf("%s%d%d",str[i],l+i,r+i);
	}
	int b;
	scanf("%d",&b);
	for(int i=0;i<b;i++){
		scanf("%s",p[i]);
	}
	stack<wolf> S;
	bool ret=false;
	for(int i=0;i<b;i++){
		bool OK=true;
		for(int j=0;p[i][j];j++)if(p[i][j]<'0'||p[i][j]>'9')OK=false;
		if(OK){
			wolf w;
			w.c[atoi(p[i])]=1;
			S.push(w);
		}else if(p[i][0]!='+'&&p[i][0]!='-'&&p[i][0]!='*'&&p[i][0]!='/'){
			wolf w;
			int at=0;
			for(int k=0;k<a;k++){
				bool ok=true;
				for(int j=0;str[k][j]||p[i][j];j++)if(str[k][j]!=p[i][j])ok=false;
				if(ok)at=k;
			}
		//	printf("%d %d\n",i,at);
			for(int i=l[at];i<=r[at];i++)w.c[i]=1;
			S.push(w);
		}else{
			wolf B=S.top();
			S.pop();
			wolf A=S.top();
			S.pop();
			wolf w;
			if(p[i][0]=='+'){
				for(int k=0;k<256;k++)
					for(int j=0;j<256;j++)
						if(A.c[k]&&B.c[j])w.c[(k+j)%256]=1;
				S.push(w);
			}
			if(p[i][0]=='-'){
				for(int k=0;k<256;k++)
					for(int j=0;j<256;j++)
						if(A.c[k]&&B.c[j])w.c[(k-j+256)%256]=1;
				S.push(w);
			}
			if(p[i][0]=='*'){
				for(int k=0;k<256;k++)
					for(int j=0;j<256;j++)
						if(A.c[k]&&B.c[j])w.c[(k*j)%256]=1;
				S.push(w);
			}
			if(p[i][0]=='/'){
				for(int k=0;k<256;k++)
					for(int j=0;j<256;j++)
						if(A.c[k]&&B.c[j]){
							if(j==0)ret=true;
							else w.c[(k/j)%256]=1;
						}
				S.push(w);
			}
		//	printf("%d: ",i);
		//	for(int i=0;i<230;i++)printf("%d",w.c[i]);
		//	printf("\n");
		}
	}
	if(ret)printf("error\n");
	else printf("correct\n");
}