import java.io.*;
import java.util.*;

public class spelling_mb_bug1 {

    static boolean testVoc(String word) {
        for (int i = 0; i < word.length(); i++) {
            if (!Character.isLowerCase(word.charAt(i))) {
                return false;
            }
        }
        return true;
    }

    static boolean testText(String text) {
        for (int i = 0; i < text.length(); i++) {
            char c = text.charAt(i);
            if (!(
                c >= 'a' && c <= 'z' ||
                c >= 'A' && c <= 'Z' ||
                c == ' ' ||
                c == '.' ||
                c == ',' ||
                c == '-' ||
                c == '?' ||
                c == '!' ||
                c == ':' ||
                c == ';' ||
                c == '\'' ||
                c == '"' 
            )) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new FileReader("spelling.in"));
        StringTokenizer bounds = new StringTokenizer(in.readLine());
        int N = Integer.parseInt(bounds.nextToken());
        int M = Integer.parseInt(bounds.nextToken());

        assert 1 <= N && N <= 1000  : "Number of words in vocabulary is out of bounds";
        assert 1 <= M && M <= 10000 : "Number of lines in the text is out of bounds";
        assert !bounds.hasMoreTokens() : "Extra data in first line";

        String[] vocabulary = new String[N];
        boolean[] used = new boolean[N];

        for (int i = 0; i < N; i++) {
            vocabulary[i] = in.readLine();
            assert testVoc(vocabulary[i]) : "Not a lowercase word";
            assert 1 <= vocabulary[i].length() && vocabulary[i].length() <= 20 : "Vocabulary word length is out of bounds";
        }

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < M; i++) {
            sb.append(in.readLine());
        }
        in.close();

        assert sb.length() <= (10000) : "Text is too long";

        String text = sb.toString();

        assert testText(text) : "The text does not match its definition";

        StringTokenizer tok = new StringTokenizer(text, " .,:;!?-'\"");

        boolean known = true;

        while (known && tok.hasMoreTokens()) {
            String word = tok.nextToken().toLowerCase();
            known = false;
            for (int i = 0; i < N; i++) {
                if (word.equals(vocabulary[i])) {
                    used[i] = true;
                    known = true;
                }
            }
        }

        PrintWriter out = new PrintWriter("spelling.out");
        if (!known) {
            out.println("Some words from the text are unknown.");            
        } else {
            boolean anyUsed = true;
            for (boolean b : used) {
                anyUsed = b;
                if (!b) {
                    break;
                }
            }
            if (anyUsed) {
                out.println("Everything is going to be OK.");
            } else {
                out.println("The usage of the vocabulary is not perfect.");
            }
        }
        out.close();
    }
}