package com.javarush.task.task17.task1721;

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/*
Транзакционность
*/

public class Solution {
    public static List<String> allLines = new ArrayList<String>();
    public static List<String> forRemoveLines = new ArrayList<String>();

    public static void main(String[] args) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));   //консоль для ввода имени файла;

        String filename1 = null;    //поле для названия первого файла;
        String filename2 = null;    //поле для названия второго файла;

        BufferedReader fileReader1 = null;  //консоль для чтения первого файла;
        BufferedReader fileReader2 = null;  //консоль для чтения второго файла

        File file1 = new File(filename1);   //первый файл;
        File file2 = new File(filename2);   //второй файл;

        try {
            filename1 = reader.readLine();//ввод имени для первого файла;
            filename2 = reader.readLine();//ввод имени для второго файла;
            reader.close(); //закрытие консоли для ввода имени;

            fileReader1 = new BufferedReader(new FileReader(filename1));
            fileReader2 = new BufferedReader(new FileReader(filename2));

            while (fileReader1.ready()) {   //чтение данных первого файла...
                allLines.add(fileReader1.readLine());   //и их помещение в список allLines;
            }
            fileReader1.close();    //закрытие консоли для считывания данных с первого файла;
            while (fileReader2.ready()) {   //чтение данных второго файла...
                forRemoveLines.add(fileReader2.readLine()); //и их помещение в список forRemoveLines;
            }
            fileReader2.close();    //закрытие консоли для считывания данных со второго файла;
        } catch (IOException e) {}


        try {
            new Solution().joinData();
        } catch (CorruptedDataException e) {}
    }

    public void joinData() throws CorruptedDataException  {//должен выбрасывать CorruptedDataException;
        for (int i = 0; i < allLines.size(); i++) {
            for (int j = 0; j < forRemoveLines.size(); j++) {
                if (allLines.get(i).equals(forRemoveLines.get(j))) {    //если строки allLines и forRemoveLines совпадают...
                    allLines.remove(i);                                 //удалить совпадающую строку из allLines;
                } else {
                    for (int k = 0; k < allLines.size(); k++) { //в другом случае, удалить всё из allLines;
                        allLines.remove(k);
                    }
                    throw new CorruptedDataException();//если условие не выполнено, выбросить CorruptedDataException;
                }
            }
        }
    }
}