#include "bits/stdc++.h"

using namespace std;

using ll = long long;
using ld = long double;
using P = pair<int, int>;
constexpr ld EPS = 1e-12;
constexpr int INF = numeric_limits<int>::max() / 2;
constexpr int MOD = 1e9 + 7;

int n;

bool calc(map<string, bitset<256>> &mp, vector<string> &e)
{
    stack<bitset<256>> st;
    for (int i = 0; i < n; i++)
    {
        if (e[i] == "+")
        {
            bitset<256> b = st.top();
            st.pop();
            bitset<256> a = st.top();
            st.pop();
            bitset<256> r;
            for (int j = 0; j < 256; j++)
            {
                for (int k = 0; k < 256; k++)
                {
                    if (a[j] && b[k])
                    {
                        r.set((j + k) % 256);
                    }
                }
            }
            st.push(r);
        }
        else if (e[i] == "-")
        {
            bitset<256> b = st.top();
            st.pop();
            bitset<256> a = st.top();
            st.pop();
            bitset<256> r;
            for (int j = 0; j < 256; j++)
            {
                for (int k = 0; k < 256; k++)
                {
                    if (a[j] && b[k])
                    {
                        r.set((j - k + 256) % 256);
                    }
                }
            }
            st.push(r);
        }
        else if (e[i] == "*")
        {
            bitset<256> b = st.top();
            st.pop();
            bitset<256> a = st.top();
            st.pop();
            bitset<256> r;
            for (int j = 0; j < 256; j++)
            {
                for (int k = 0; k < 256; k++)
                {
                    if (a[j] && b[k])
                    {
                        r.set((j * k) % 256);
                    }
                }
            }
            st.push(r);
        }
        else if (e[i] == "/")
        {
            bitset<256> b = st.top();
            st.pop();
            bitset<256> a = st.top();
            st.pop();
            bitset<256> r;
            for (int j = 0; j < 256; j++)
            {
                for (int k = 0; k < 256; k++)
                {
                    if (a[j] && b[k])
                    {
                        if (k == 0)
                            return false;
                        r.set((j / k) % 256);
                    }
                }
            }
            st.push(r);
        }
        else
        {
            st.push(mp[e[i]]);
        }
    }
    return true;
}

int main()
{
    cin.tie(0);
    ios::sync_with_stdio(false);

    int m;
    cin >> m;
    map<string, bitset<256>> mp;
    for (int i = 0; i < m; i++)
    {
        string name;
        int lb, ub;
        cin >> name >> lb >> ub;
        bitset<256> bs;
        for (int i = lb; i <= ub; i++)
        {
            bs.set(i);
        }
        mp[name] = bs;
    }
    cin >> n;
    vector<string> e(n);
    for (int i = 0; i < n; i++)
    {
        cin >> e[i];
        if ('0' <= e[i][0] && e[i][0] <= '9')
        {
            int num = stoi(e[i]);
            bitset<256> bs;
            bs.set(num);
            mp[e[i]] = bs;
        }
    }
    if (calc(mp, e))
    {
        cout << "correct" << endl;
    }
    else
    {
        cout << "error" << endl;
    }
}

